entity framework4.0:错误113:多重性在angular色中无效

我已经在我的数据库中放了一个新表,并且有4个表与外键有关系。 我以为我以同样的方式configuration了所有4个,但是我得到这个错误;

错误15错误113:多重性在“FK_OtherLeaves_ReportCellImages”关系中的angular色“ReportCellImage”中无效。 因为依赖angular色中的所有属性都是可空的,所以主体angular色的多重性必须是“0..1”。

所以为了简化我的表格,

ReportCellImage表包含在主键和一个整数中的ReportCellImageId字段

OtherLeave表包含ReportCellImageId字段为可空的外键,默认值为4

其他表是相似的,都有一个外键configuration为joinReportCellImage表

这是一个最近的变化,所以当我从数据库更新我的edmx文件,为什么我得到这个错误,我该如何解决?

如果您的FK可以为空,您的主体实体的多重性必须为0..1 – 默认值在此没有作用,因为您可以将空值赋予FK。 所以你所有的依赖实体必须与你的主体实体有0..1 – *关系。

我只是有同样的消息,这是令人困惑的,因为我在数据库中修改的表是不同于我得到的消息。

我试图改变0..1到多的多重性,但是消息仍然存在,甚至在“运行自定义工具”命令,清理和重build之后。

通过放弃EF抱怨的关系并从DB更新模型来解决

右键单击EDX Diagrame中的关系。 在合适的情况下,将END1多重性更改为0..1(零或一个YOURTABLENAME)

我从模型中删除了更新的表格,然后从数据库中更新模型,再次添加它,它帮助。

添加一个新表后,我遇到了同样的问题,我尝试了所有的解决scheme,包括放弃关系,但是没有成功。 为我工作的解决scheme是完全删除模型,并创build一个新的模型。 不要忘记在web.config中删除连接string,以便新的EF可以使用相同的名称。

删除实体类中的实体引用,然后在数据库中手动删除引用,然后将它们一步一步地返回来解决我在完成快速解决scheme后意识到的问题,是在将上下文中的WithRequiredreplace为WithOptional之后我首先将字段从空可变为不可空。

protected override void OnModelCreating(DbModelBuilder modelBuilder)