纯属个人记录错误使用:
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是一个对象而非字段