亲而有间,密而有疏;和而不同,美美与共

EF错误记录

纯属个人记录错误使用:

1、EntityType“area”未定义键。请为该 EntityType 定义键。

产生原因:

1、命名空间引用错误,可能命名重复导致引用错误

2、实体类无法识别主键或者未设置主键

默认可识别id为主键,当model中无id时,则须手动标识出主键

引用 System.ComponentModel.DataAnnotations 命名空间
在对应model类中找到对应数据库中主键的属性,在头部声明[key]

 

 3、EF已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。

将IQueryable<Entities.Assets_ApplyPurchaseList> list = handle.GetList(RequestCode);改成:List<Entities.Assets_ApplyPurchaseList> list = handle.GetList(RequestCode).ToList();即将查询到的数据写入内存,错误解除

 4、LINQ to Entities 不识别方法“System.String get_Item(Int32)”

LINQ或lamda中不能“嵌套“方法(说的不准确,暂记下)

如 var cers = _aContract.GetList(c => c.Name.Contains(list[i])).ToList();

这个语句就会报错,原因是list[i]需要在外部获取值,修改:

var name = list[i];

var cers = _aContract.GetList(c => c.Name.Contains(name)).ToList();

错误解决。这个地方很容易出错,相似的问题还有:不能整个对象进行操作,如:

var cers = _aContract.GetList(c => c.Person.Contains(new Person{name = 'joey'})).ToList();//这里的Person是一个对象而非字段

 

posted @ 2016-12-21 21:26  大兄弟竹子  阅读(382)  评论(0)    收藏  举报