EF 4.1中的XML数据类型代码优先 [英] XML data type in EF 4.1 Code First

查看:232
本文介绍了EF 4.1中的XML数据类型代码优先的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



根据这个线程可以将这样的列映射到字符串类型:

  public class XmlEntity 
{
public int Id {get;组; }

[Column(TypeName =xml)]
public string XmlValue {get;组; }
}

该表通过此定义在datebase中正确生成。新的 XmlEntity 对象也可以创建。



但是我尝试从数据库中获取一些实体:

  var entity = db.XmlEntities.Where(e => e.Id == 1).FirstOrDefault(); 

发生错误:


在模型生成期间检测到一个或多个验证错误
System.Data.Edm.EdmEntityType :EntityType' XElement '没有键定义。定义此EntityType的密钥。



解决方案

问题是我的包装属性: p>

  [NotMapped] 
public XElement XmlValueWrapper
{
get {return XElement.Parse(XmlValue) ; }
set {XmlValue = value.ToString(); }
}

我没有指定 NotMapped 属性。


I would like to use SQL Server xml type as a column type for an entity class.

According to this thread it's possible to map such a column to string type:

public class XmlEntity
{
   public int Id { get; set; }

   [Column(TypeName="xml")]
   public string XmlValue { get; set; }
}

The table is correctly generated in the datebase by this definition. New XmlEntity objects are also can be created.

But then I try to get some entity from the database:

var entity = db.XmlEntities.Where(e => e.Id == 1).FirstOrDefault();

An error occurs:

One or more validation errors were detected during model generation System.Data.Edm.EdmEntityType: EntityType 'XElement' has no key defined. Define the key for this EntityType.

解决方案

The problem was with my wrapper property:

[NotMapped]
public XElement XmlValueWrapper
{
    get { return XElement.Parse(XmlValue); }
    set { XmlValue = value.ToString(); }
}

I didn't specified NotMapped attribute.

这篇关于EF 4.1中的XML数据类型代码优先的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆