ASP.NET MVC5 用CodeFirst做网站遇到的问题——主外键冲突

数据库中存在complainsuggest的Id然后再此基础上,建立投诉的回复Answer。但是老是会报主外键冲突,一直在网上百度。说是因为在complainSuggest上没有Id,对于answer需要其Id为外键,所以冲突。但是找了数据库根本就没有这个问题。

然后反过来找之前建立的实体和上下文中的表间关系。然后就发现自己对于表间关系的建立并不是很熟练,所以导致了各种错误。

最后把一对一的表间关系变成这个样子才可以,但是我感觉这个一对一的表间关系和一对多的表间关系看起来是一样的。

但是他就是合适的。我很无奈,所以还需要继续修炼。

更改了表间关系之后一定要记得删掉数据库,再次运行,才可以正常运行。

modelBuilder.Entity<ComplainSuggest>()
                .HasKey(c => c.Id);
            modelBuilder.Entity<Answer>()
                .HasKey(a => a.Id);

            modelBuilder.Entity<Answer>()
                .HasRequired(c => c.ComplainSuggest)
                .WithMany()
                .HasForeignKey(a=>a.ComplainSuggestID)
                .WillCascadeOnDelete(false); 

 这是别人写的一对一,一对多的关系,可以看一下。

http://blog.csdn.net/ago52030/article/details/1721033

转载于:https://www.cnblogs.com/myis55555/p/7425446.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值