我想使用 SQL Serverxmltype 作为实体类的列类型。
根据这个线程 https://social.msdn.microsoft.com/Forums/en-US/2d6b75ee-a1b7-44bf-b5f3-d32b12f2db66/xml-column-with-code-first?forum=adodotnetentityframework可以将这样的列映射到string type:
public class XmlEntity
{
public int Id { get; set; }
[Column(TypeName="xml")]
public string XmlValue { get; set; }
}
通过此定义,该表已在数据库中正确生成。新的Xml实体也可以创建对象。
但后来我尝试从数据库中获取一些实体:
var entity = db.XmlEntities.Where(e => e.Id == 1).FirstOrDefault();
出现错误:
在模型生成过程中检测到一个或多个验证错误
System.Data.Edm.EdmEntityType: 实体类型 'XElement' 没有定义键。定义此 EntityType 的键。
问题出在我的包装属性上:
[NotMapped]
public XElement XmlValueWrapper
{
get { return XElement.Parse(XmlValue); }
set { XmlValue = value.ToString(); }
}
我没有指定未映射属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)