今天网上朋友提到的一个错误问题,我之前没有遇见过

 问题表述:

有两个表的关系是这样的【探索发现】System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException 对象的当前状态使该操作无效。

用Linq生成相关代码。

程序这样做:

        【探索发现】System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException 对象的当前状态使该操作无效。

然后,就报了错误:

 System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException 对象的当前状态使该操作无效。

其实,解决的办法就是去掉那个msg.MessageType = msg.MessageType; 赋值过程

这个可以用反编译查看一下,

【探索发现】System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException 对象的当前状态使该操作无效。

【探索发现】System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException 对象的当前状态使该操作无效。

那么这样就把那个状态值改成了Assigned。

所以,如果再次赋值msg.msgtypeid = 1;的话,在这个位置上就有了问题了。

看看里面【探索发现】System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException 对象的当前状态使该操作无效。

【探索发现】System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException 对象的当前状态使该操作无效。

问题就在这里了,这个在之前已经被设置为Assigned了所以这里运行报错!!!

【探索发现】System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException 对象的当前状态使该操作无效。

希望,如果下次大家不要再为它郁闷了~ 呵呵

相关文章: