我们为我们的应用程序使用基于实体框架模型的WCF数据服务。
在这里,我们需要添加一个具有HierarchyId类型的列的表。当我将该表添加到EDMX文件中时,HierarchId列没有出现在类文件中。
我应该怎么做才能使用HierarchyID?我读到实体框架不支持HierarchyID,那么我该如何实现呢?
发布于 2010-12-01 01:28:06
您始终可以将HierarchyId转换为它的字符串表示形式--类似于/1/3/4/1 --并通过WCF数据服务发送该字符串。
更新:如果您将此计算后的持久化列添加到您的SQL Server表中,则该新列肯定会显示在您的EF模型中,并且您应该能够使用它通过WCF和WCF将其发回:
ALTER TABLE dbo.YourTable
ADD HierarchyString AS (your hierarchyID field).ToString() PERSISTED更新#2: read the docs!您可以将像/1/3/4/1这样的字符串解析回HierarchyId类型-可以使用HierarchyId::Parse(string)或常用的CAST(string as HierarchyId)方法来完成此操作。
发布于 2011-08-02 22:42:21
如果您使用计算列,请记住,您的属性上也需要DatabaseGenerated数据注释,如下所示:
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public string HierarchyString { get; set; }有关更多信息,请查看本文:Entity Framework Code First Computed Properties
https://stackoverflow.com/questions/4316069
复制相似问题