我使用MS SQL,EF 4和C#。
我在“类别”的SQL中有一个表,我需要在我的Asp.net页面填充一个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()
);
答案 0 :(得分:1)
不幸的是,EF4还不支持HierarchyId。所以在这种情况下,你最好的选择可能是拥有一个存储过程来处理你的层次结构并将结果集返回给EF,EF4可以将其变成用户定义的复杂类型的集合,然后可以直接绑定到树视图控制。
如果您计划更新数据库中的层次结构,我将使用相同的方法:从EF调用存储过程以更新数据库中的层次结构。