2011-01-05 57 views
0

我使用MS SQL,EF 4和C#。如何使用EntityDataSource填充TreeView

我在SQL中有一個表格「Categories」,我需要在我的Asp.net頁面中填充一個TreeView。

我的問題是:

  • 1 - 我怎麼能填充TreeView的?
  • 2 - 如何使用TreeView來修改我的類別的層次結構?

注意:我使用「hierarchyid」SQL列!

謝謝你們的幫助!

CREATE TABLE dbo.CmsCategories 
(
    CategoryId   int    NOT NULL IDENTITY (0,1) -- Seed = 0 and Increment= 1 
     CONSTRAINT PK_CmsCategories_CategoryId PRIMARY KEY, 
    Title    nvarchar(40) NOT NULL, 
    MetaDescription  nvarchar(160) NOT NULL, 
    MetaKeyword   nvarchar(128) NOT NULL, 
    Summary    nvarchar(256) NOT NULL, 
    IsPublished   bit    NOT NULL 
     CONSTRAINT DF_CmsCategories_IsPublished DEFAULT 1, 
    CategoryNode  hierarchyid  NOT NULL, 
    CategoryNodeLevel AS CategoryNode.GetLevel()   
); 

回答

1

不幸的是,EF4不支持HierarchyId(還)。因此,在這種情況下,您最好的選擇可能是使用一個存儲過程來處理您的層次結構,並將結果集返回給EF,以使EF4可以變成用戶定義的複合類型的集合,然後可以直接綁定到樹視圖控件。

如果您打算更新數據庫中的層次結構,我會使用相同的方法:從EF調用存儲過程來更新數據庫中的層次結構。

+0

嗨,謝謝我評估你的想法。怎麼樣使用原始的ADO.NET?一個例子在這裏http://www.thereforesystems.com/working-with-sql-server-hierarchyid-data-type-in​​-net-application/ – GibboK 2011-01-05 10:06:52

+0

@GibboK:是的,原始的ADO.NET是另一種選擇,當然。我希望EF5將支持所有的SQL Server 2008功能!會很好... – 2011-01-05 12:27:48

+0

EF 5會出現什麼想法?感謝,並有一個愉快的一天! – GibboK 2011-01-05 16:57:30