EF FluentAPI映射一对多 关系时候报错

提示很明显,不可为空的外键为空了,但是 问题是,我只是初始化 关系映射而已:见代码
public ColumnsCategoryMapConfiguration()
{
ToTable("ColumnsCategory").HasKey(x => x.Id);
Property(x => x.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None)
.IsRequired()
.IsConcurrencyToken();
Property(x => x.CategoryName).HasMaxLength(50).IsRequired();
Property(x => x.SystemMenuKey).IsOptional();//后加的
HasOptional(x => x.SystemMenu)
.WithMany(x => x.ColumnsCategoryCollection)
.HasForeignKey(x => x.SystemMenuKey)
.WillCascadeOnDelete(false);
}
关于 HasOptional;见截图:

明明是说在数据库中将是可null类型吗?搞什么灰机,难道被微软骗了?
后来在 stackoverflow上看到一哥们儿针对以类似问题,这么回答
Hope this is still on time to help you. I was also having the exact same problem and was troubling with it for almost an hour until I could spot my mistake.
The problem is that Course.Venue relationship is optional (as declared on the fluent API), but the Id declaration of Course.VenueId is mandatory, so you can either make VenueId optional by changing it to
public int? VenueId { get; set;}
or change the relationship to mandatory on the fluent API, and the OnModelCreating should run fine once you changed that.
于是 加上了红色部分 内容,问题即可消除。
EF FluentAPI映射一对多 关系时候报错的更多相关文章
- 0050 MyBatis关联映射--一对多关系
一对多关系更加常见,比如用户和订单,一个用户可以有多个订单 DROP TABLE IF EXISTS customer; /*用户表*/ CREATE TABLE customer( `pk` INT ...
- hibernate 映射 数据库number 映射为 double 为空 报错问题
将 数据库表 映射成hibernate 实体类时 将number --- double 如果数据库中number 为空,查找数据时将报错 Can not set double field ***** ...
- Hibernate 多表关联映射- 一对多关系映射(one-to-many)
Hibernage.cfg.xml: <hibernate-configuration> <session-factory name="sessionFactory&quo ...
- 将CDM中所有以Relatonship_开头的关系全部重命名,避免生成数据库因为重复关系名报错
Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl '当前model '获取当前活 ...
- 使用MVC和EF,在保存数据的时候报错:System.Data.Entity.Validation.DbEntityValidationException: 对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。
public UserInfo Create(UserInfo entity) { try { context.UserInfoes.Add(entity); context.SaveChanges( ...
- 集合Set映射一对多(使用xml文件)
如果持久化类设置了包含实体引用的对象,则需要使用一对多关联来映射集合(Set)元素. 我们可以通过任意一个Set集合来映射这个列表对象. 下面来看看看设置对象的持久化类. 在这种情况下,一个问题可以有 ...
- EF报错:对一个或多个实体的验证失败(Entity Framework 强制转换失败数据异常处理方法)
1.使用MVC和EF,在保存数据的时候报错:System.Data.Entity.Validation.DbEntityValidationException: 对一个或多个实体的验证失败.有关详细信 ...
- com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence报错解决方法
添加了XML实体和表映射文件后,莫名报错,百思不得其解,也找不到哪里错了,后来把mybatis-config.xml文件中去掉中文注释就好了 mybatis-config.xml文件中的内容如下,去掉 ...
- 【Tomcat】Tomcat报错追踪
应用部署上之后无法正常启动.tomcat启动日志例如以下: 信息: Starting service Catalina 2015-7-22 18:39:31 org.apache.catalina.c ...
随机推荐
- httpclient 超时设置
最近项目客户反应超时经常出现:现已经总结超时设置: 使用是apache的HttpClient: DefaultHttpClient:请求超时httpclient.getParams().setPara ...
- _CrtSetBreakAlloc简单内存泄漏检测方法,解决Detected memory leaks!问题
我的环境是: XP SP2 . VS2003 最近在一个项目中,程序退出后都出现内存泄漏: Detected memory leaks! Dumping objects -> {98500} n ...
- Jira在linux上安装与部署
Where should JIRA 6.0.1 be installed? [/opt/atlassian/jira] /usr/local/jira Default location for JIR ...
- Light OJ 1031 - Easy Game(区间DP)
题目大意: 给你一个n,代表n个数字,现在有两个选手,选手A,B轮流有有一次机会,每个选手一次可以得到一个或者多个数字,从左侧或者右侧,但是不能同时从两边取数字,当所有的数字被取完,那么游戏结束.然后 ...
- 在Windows Server 2012 上安装Exchange 2013 服务器
前文:http://www.cnblogs.com/Liangw/archive/2011/09/19/2559944.html 安装准备: 1.加入一个存在的域(?如何建立一个域) 2.登录Wind ...
- Win32消息机制
1. 消息机制 过程驱动:程序是按照我们预先定义好的顺序执行,每执行一步,下一步都已经按照预定的顺序继续执行,直到程序结束. 事件驱动:程序的执行顺序是无序的.某个时间点所执行的代 ...
- poj 2068 Nim(博弈树)
Nim Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1501 Accepted: 845 Description Le ...
- Using Apache2 with JBoss AS7 on Ubuntu
大体思路同<Using Apache Web Server with Jboss AS 7>一致,但在Ubuntu上的操作与之前有些区别. 这里仍然演示mod_proxy的配置. 首先加载 ...
- Python中With的用法
在看Dive Into Python中有关描述文件读写那章节的时候,看到了有关with的用法,查阅下相关资料,记录下来,以备后用. 官方的reference上有关with statement是这样说的 ...
- Sicily1151:魔板搜索及优化
最终优化代码地址: https://github.com/laiy/Datastructure-Algorithm/blob/master/sicily/1151.c 题目如下 Constraints ...