码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2015-12-26 01:09:55      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

提示很明显,不可为空的外键为空了,但是 问题是,我只是初始化 关系映射而已:见代码

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映射一对多 关系时候报错

标签:

原文地址:http://www.cnblogs.com/Tmc-Blog/p/5077281.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!