首页 新闻 赞助 找找看

EF更新外键字段时报错,目前网上有人遇到过,但没有好的解决方案,求高人指点!

0
悬赏园豆:10 [已关闭问题] 关闭于 2015-07-31 09:40

代码如下,采用CODE FIRST EF6.0:

public class Book
{
    public int Id{get;set;}
    public string   Name{get;set;}
    public int  AuthorId {get;set;}

    [ForeignKey("AuthorId ")]
    public virtual Person Author {get;set;}

}

public class Person 
{
   public int Id{get;set;}
   public string   Name{get;set;}
}

更新语句:
var p=context.Persons.Single(t=>t.Id==1);
var book=context.Books.Singlie(t=.t.Id==1);
book.Author =null;
book.AuthorId =1; 
context.SaveChanges(); //报错如后面描述

换成如下仍是同样报错:
book.Author =p;
context.SaveChanges(); //报错如后面描述

报错信息:

A referential integrity constraint violation occurred: The property value(s) of 'Person.ID' on one end of a relationship do not match the property value(s) of 'Book.AuthorId' on the other end.

 

目前网上有人遇到过,但没有好的解决方案,求高人指点!

比如:

https://social.msdn.microsoft.com/Forums/zh-CN/e6bd1192-5b29-4f17-9e4d-f1dcce82113c/foreign-key-conflict?forum=csharpgeneral

http://stackoverflow.com/questions/16128664/a-referential-integrity-constraint-violation-occurred

问题补充:

为啥就是没有有回答啊!

梦在旅途的主页 梦在旅途 | 初学一级 | 园豆:10
提问于:2015-07-20 16:00
< >
分享
所有回答(1)
0

试试把主键都加上[Key]

liqipeng | 园豆:1160 (小虾三级) | 2015-07-20 20:22

都有加的!

支持(0) 反对(0) 梦在旅途 | 园豆:10 (初学一级) | 2015-07-22 15:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册