实体框架模型 - 第一个可以为空的外键

时间:2017-01-06 21:33:27

标签: c# sql-server entity-framework

我正在拼命尝试使用Entity Framework模型设计器实现可以为空的外键。

有问题的表格如下:

EF Model

设置应该是正确的,因为我的类是使用Sender属性生成的,如下所示:

public Nullable<int> SenderId { get; set; }

但是,在调用Context.Database.Create();时,创建的数据库SenderId属性不可为空。

如果我在数据库中手动将列类型更改为可为空,我在EF中会收到模型和数据库不同的错误。

有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

我遇到了和你一样的问题

尝试像这样设置发件人ID:

   public int? SenderId { get; set; }

如果这对您没有帮助,您可以如上所示更改属性,并在完成后手动修改数据库。应该没有区别。

答案 1 :(得分:0)

好的,在搞乱了几个小时之后,我终于找到了问题的根源:我的实体模型的edmx文件。

虽然Visual Studio实体模型设计器向我展示了该列可以为空(或者我将其设置为可为空),但我必须发现.edmx文件本身并未应用这些更改。我在编辑器中手动更改了.edmx文件。

<Property Name="SenderId" Type="Int32" Nullable="true" />

Nullable属性最初设置为false ...顺便说一句:关联也没有保存,我必须在文本编辑器中自己设置0..1关联,因为外键现在可以为空。 无论如何,谢谢你的帮助!

相关问题