【发布时间】:2017-08-19 20:11:41
【问题描述】:
我有这样的课:
public class GeneralClass
{
public int Id {get; set;}
public string Name {get; set;}
}
这是一个非常通用的类。我也有一个这样的派生类:
public class DerivedClass: GeneralClass
{
public int SpecificProperty {get; set;}
public string AnotherSpecificProperty {get; set;}
public bool BooleanSpecificProperty {get;set;}
}
问题是,我的应用程序中可以有很多派生类(超过 10 个),这就是为什么在数据库中继承不是一种选择。
我想出的解决方案是将GeneralClass 作为一个表,其中包含一个包含特定属性的 XML 列。
类似这样的:
CREATE TABLE
General(Id int primary key,
Name nvarchar(50),
SpecificProperties xml);
其中特定属性包含派生类的属性。
问题是:如何使用 Entity Framework 保存和查询这个 xml 列,并将 xml 反序列化到属性中?
【问题讨论】:
-
据我所知,EF 不支持 XML 查询。所以我猜你必须在选择之后应用一个谓词。
标签: c# xml asp.net-mvc entity-framework