Sql server 如何在实体框架中处理可为空的外键字段?

Sql server 如何在实体框架中处理可为空的外键字段?,sql-server,entity-framework,Sql Server,Entity Framework,我有一个表,其中有一个可为空的整型字段,它是一个外键。当我尝试将实体模型的Nullable属性设置为True时,我得到一个错误,指出Int32类型的字段不能为null。所以,如果实体框架不支持可为空的整数,我如何向表中插入具有空值的行?如果未为可为Null的属性实体指定值,则框架将插入一个值0,该值由于外键约束而引发错误 SQL Server可以使用可为空的外键,因此我希望保留check约束。我的选择是什么 提前谢谢 EF确实支持可为空的int。但是int和int?有两种不同的类型。针对可为nu

我有一个表,其中有一个可为空的整型字段,它是一个外键。当我尝试将实体模型的Nullable属性设置为True时,我得到一个错误,指出Int32类型的字段不能为null。所以,如果实体框架不支持可为空的整数,我如何向表中插入具有空值的行?如果未为可为Null的属性实体指定值,则框架将插入一个值0,该值由于外键约束而引发错误

SQL Server可以使用可为空的外键,因此我希望保留check约束。我的选择是什么

提前谢谢

EF确实支持可为空的int。但是int和int?有两种不同的类型。针对可为null的int列生成一个新模型,您将看到


更新模型不会改变关联的多样性的原因是EF在更新时试图保留CSDL自定义。它将从头开始重新生成SSDL,并向CSDL中添加任何新的对象/关系,但不会覆盖您可能进行的更改。

False premise。EF确实支持可为空的int。但是
int
int?
是两种不同的类型。针对可为null的int列生成一个新模型,您将看到。在我看来,你的DB模型并不是你想象的那样。好吧,问题是在为实体模型将Nullable属性设置为True之后,我还必须将外键关系的多重性属性设置为0或1。这就消除了错误,生成了正确的模型。我很惊讶EF在我尝试从数据库更新模型时没有这样做,但不管怎样,我现在都准备好了!如果你把对我断言的更正作为答复,我会接受的。谢谢