[System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException]: {"对象的当前状态使该操作无效。"}
2011-03-23 11:25
477 查看
背景:用Linq to sql 开发系统,两个父子关系的表,例如A表和B表,B表中含有A表的主键A_ID作为B表的外键,如果B表中的A_ID时,使用了如下的写法:
MyDataContext db = new MyDataContext();
var b1 = (from b in db.B where b.ID == 6 select b).Single();
b1.A_ID = 5;
db.SubmitChanges();
这样写的话,将会得到以下错误:
原因在于这种写法破坏了ORM的关联结构,应该改写为如下代码:
MyDataContext db = new MyDataContext();
var b1 = (from b in db.B where b.ID == 6 select b).Single();
b1.A = (from a in db.A where a.ID == 5 select a).Single();
db.SubmitChanges();
参考网址:http://blog.miniasp.com/post/2008/08/Operation-is-not-valid-due-to-the-current-state-of-the-object.aspx
MyDataContext db = new MyDataContext();
var b1 = (from b in db.B where b.ID == 6 select b).Single();
b1.A_ID = 5;
db.SubmitChanges();
这样写的话,将会得到以下错误:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
对象的当前状态使该操作无效。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException: 对象的当前状态使该操作无效。
原因在于这种写法破坏了ORM的关联结构,应该改写为如下代码:MyDataContext db = new MyDataContext();
var b1 = (from b in db.B where b.ID == 6 select b).Single();
b1.A = (from a in db.A where a.ID == 5 select a).Single();
db.SubmitChanges();
参考网址:http://blog.miniasp.com/post/2008/08/Operation-is-not-valid-due-to-the-current-state-of-the-object.aspx
相关文章推荐
- 【探索发现】System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException 对象的当前状态使该操作无效。
- System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException: Operation is not valid due to the current state of the obj
- LINQ Exception: System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException
- System.InvalidOperationException: 对象的当前状态使该操作无效
- 异常详细信息: System.InvalidOperationException: 对象的当前状态使该操作无效
- 异常: System.InvalidOperationException: 对象的当前状态使该操作无效
- System.InvalidOperationException: 对象的当前状态使该操作无效
- 【ASP.NET 问题】System.InvalidOperationException: 对象的当前状态使该操作无效 【大量表单数据提交】错误解决
- INFOPATH 2007 - System.InvalidOperationException: 对象的当前状态使该操作无效。
- System.InvalidOperationException: 对象的当前状态使该操作无效 【大量表单数据提交】
- System.InvalidOperationException: 对象的当前状态使该操作无效。
- 异常详细信息: System.InvalidOperationException: 对象的当前状态使该操作无效 真正的解决办法
- System.InvalidOperationException: 对象的当前状态使该操作无效
- 我终于解决了ForeignKeyReferenceAlreadyHasValueException问题
- System.Data.SqlClient.SqlException:“对象名 'customer' 无效。"
- InvalidOperationException: 对象的当前状态使该操作无效
- sharepoint systemUpdate() 对象的当前状态使该操作无效
- [InvalidOperationException: 对象的当前状态使该操作无效
- System.ArgumentException: 已添加了具有相同键的项。(An item with the same key has already been added) 在 System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) 在 System.Web.Mvc.Js
- InvalidOperationException: 对象的当前状态使该操作无效