• 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

  • 相关阅读:
    [js]vue-router的使用
    [js]递归实现 数组转树形
    [js]vue组件核心
    [js]了解chart绘图
    [js]vue权限控制
    [js]vue显示一个外部链接的组件
    [js]axios使用
    [js]vue中 给router-view 组件的 绑定 key 的原因
    [java]BeanPostProcessor使用及源码
    [java]权限管理
  • 原文地址:https://www.cnblogs.com/myis55555/p/7425446.html
Copyright © 2020-2023  润新知