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

时间: 2024-10-21 03:44:00

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

探索ASP.NET MVC5系列之~~~5.Session篇(进程外Session)

其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.html#mvc 本章Demo:https://github.com/dunitian/LoTCodeBase/blob/master/NetCode/6.网页基础/BMVC5/MVC5Base/Controllers/SessionController.cs 方法有很多,今天主要说不改代码的那两种(状

探索ASP.NET MVC5系列之~~~6.Session篇(进程外Session)

其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.html#mvc 本章Demo:https://github.com/dunitian/LoTCodeBase/blob/master/NetCode/6.网页基础/BMVC5/MVC5Base/Controllers/SessionController.cs 方法有很多,今天主要说不改代码的那两种(状

ASP.NET EF实体主外键关系

主键.外键 需要删除完外键表才能删除主键表 一对一关系people表public Table table{get;set;}//当前为主键表 identity表//不需要设置 一对多关系 order表 public ICollection<orderDetail> orderDetail{get;set;}//包含关系,当前为主键表 orderDetail表 public virtual order{get;set;}//外键表 原文地址:https://www.cnblogs.com/Uyd

[Asp.net MVC]Asp.net MVC5系列——添加模型

目录 概述 添加模型 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列——添加视图 概述 在本节中我们将追加一些类来管理数据库中的学生信息.这些类将成为我们的MVC应用程序中的“模型”部分. 在vs2013中EF的版本为(Entity Framework)EF6,我们将使用EF6来进行对学生信息的维护,顺便也学习一下EF6的增删改查. 添加模型 在解决方案资源管理器中,鼠标右击Models文件夹,点击“添

学习ASP .NET MVC5官方教程总结(七)Edit方法和Edit视图详解

学习ASP .NET MVC5官方教程总结(七)Edit方法和Edit视图详解 在本章中,我们研究生成的Edit方法和视图.但在研究之前,我们先将 release date 弄得好看一点.打开Models\Movie.cs 文件.先添加一个引用: <span style="font-size:14px;">using System.ComponentModel.DataAnnotations;</span> 然后在Movie类中添加以下代码: [Display(

学习ASP .NET MVC5官方教程总结(六)通过控制器访问模型的数据

学习ASP .NET MVC5官方教程总结(六)通过控制器访问模型的数据 在本章中,我们将新建一个MoviesController 控制器,并编写获取电影数据的代码,使用视图模板将数据展示在浏览器中. 在进行下一步之前,你需要先编译应用程序,否则在添加控制器的时候会出错. 在解决方法资源管理器的Controllers文件夹右键,选择"添加">"新建搭建基架项": 在"添加支架"对话框,选择 包含视图的MVC 5控制器(使用 En),然后单击

ASP.NET MVC5(二):控制器、视图与模型

前言 本篇博文主要介绍ASP.NET MVC中的三个核心元素:控制器.视图与模型,以下思维导图描述了本文的主要内容. 控制器 控制器简介 在介绍控制器之前,简单的介绍一下MVC工作原理:URL告知路由机制该使用哪个控制器(Controller),调用该控制器中的哪个方法(Action),并为该方法提供需要的参数.控制器响应用户的输入,在响应时修改模型(Model),并决定使用哪个视图(View),并对该视图进行渲染.注意:MVC模式提供的是方法调用结果,而不是动态生成的页面. 以上内容对于初学者

ASP.NET MVC5(一):ASP.NET MVC概览

ASP.NET MVC概览 ASP.NET MVC是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架. ASP.NET MVC模式简介 MVC将Web应用程序划分为三个主要的部分,以下是MSDN给出的定义: 模型(Model):模型对象是实现应用程序数据域逻辑的应用程序部件. 通常,模型对象会检索模型状态并将其存储在数据库中. 例如,Product 对象可能会从数据库中检索信息,操作该信息,然后将更新的信息写回到 SQL S

ASP.NET MVC5(三):表单和HTML辅助方法

表单的使用 Action和Method特性 Action特性用以告知浏览器信息发往何处,因此,Action特性后面需要包含一个Url地址.这里的Url地址可以是相对的,也可以是绝对的.如下Form标签向Bing的search页面发送一个搜索词(输入元素的名称为q). <form action="http://www.bing.com/search"> <input name="q" type="text" /> <i