C#学习教程:实体类型List`1不是当前上下文模型的一部分“实体类型List`1不是当前上下文模型的一部分。”尝试从编辑视图更新记录时出错。错误发生在db.Entry(properties).State=EntityState.Modified;这是我的模型:publicclassUsers{[Key]publicintUser_ID{get;放;}publicstring用户名{get;放;}[NotMapped]publicIEnumerableUser_Properties{get{returnProperties.Where(u=>u.User_ID==User_ID);}}publicvirtualICollectionProperties{get;放;}}publicclassApp_Properties{[Key]publicintProp_ID{get;放;}publicintUser_ID{得到;放;}publicintApp_ID{得到;放;}publicstringKey{get;放;}公共字符串值{得到;放;}publicDateTimeDateEntered{get;放;}publicDateTimeDateModified{get;放;}[ForeignKey("User_ID")]publicvirtualUsersUsers{get;放;这是我的控制器:[HttpPost]publicActionResultEdit(ICollectionproperties){if(ModelState.IsValid){foreach(variteminproperties){db.Entry(properties).State=EntityState.Modified;}db.SaveChanges();返回RedirectToAction("索引");}返回视图(属性);}我怀疑到达循环不适合为ICollection中的每个项目设置EntityState任何帮助将不胜感激。尝试将循环更改为:foreach(variteminproperties){db.Entry(item).State=EntityState.Modified;你正在调用db.Entry(properties)所以你试图一次追加整个集合。DbContext.Entry(object)需要一个对象,而不是一个集合。谢谢,原谅,为答案。效果很好。对于它的价值,我更喜欢将我的EntityState.Modified分配保留在一行上(因为我有多个),因此使用以下LINQ:properties.ForEach(p=>db.Entry(p).State=EntityState。修改的);尽管使用代码优先EF,我还是来到了这里。对我来说,这个问题的答案是不要尝试将实体列表传递给插入方法,而是一次插入一个实体:entityList.ForEach(context.Insert);以上是C#学习教程:EntitytypeList`1isnotamodelofthecurrentcontext的一部分分享的所有内容,如果对你有用还需要进一步了解C#学习教程,希望你会更加关注它。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
