C# 实体框架在零对一关联中设置导航属性null

C# 实体框架在零对一关联中设置导航属性null,c#,entity-framework,c#-4.0,C#,Entity Framework,C# 4.0,我在两个表之间有零对一的关联。 例如,我有实体汽车和实体许可证,汽车可以有0或1个许可证。 (一辆车可以有一个牌照,但一个牌照可以有0或1辆车) 当我试图删除汽车牌照时,通过设置car.license=null我会得到一个异常,例如: 来自“汽车牌照”的关系处于“已删除”状态。给定多重性约束,相应的“许可证”也必须处于“已删除”状态 我希望许可证保留在主许可证数据库集中,我希望它对汽车的引用保持不变,我只希望汽车的许可证设置为null 我缺少什么?将Car.License设置为null与您设置的

我在两个表之间有零对一的关联。 例如,我有实体
汽车
和实体
许可证
,汽车可以有0或1个许可证。
(一辆车可以有一个牌照,但一个牌照可以有0或1辆车) 当我试图删除汽车牌照时,通过设置
car.license=null
我会得到一个异常,例如:

来自“汽车牌照”的关系处于“已删除”状态。给定多重性约束,相应的“许可证”也必须处于“已删除”状态

我希望许可证保留在主许可证数据库集中,我希望它对汽车的引用保持不变,我只希望汽车的许可证设置为null


我缺少什么?

Car.License
设置为
null
与您设置的关联冲突,其中Car必须有一个许可证集。您需要更改您的关联,以便汽车可以有一个或零个许可证才能工作

编辑


如果要使属性为空,则必须将关联的两端设置为零或一。

关联为汽车可以有零个或一个许可证,而许可证需要有一个汽车。这就是我不理解的。在这种情况下,请尝试将license对象上的car属性设置为null。您不理解。我无法将许可证设置为空,因为它有一个约束!我想这样做,我只想将Car.License设置为null,它应该可以工作,因为它是(零或一),但它会给我一条错误消息,好像我正在删除某些内容。是的,如果你想将Car.License属性设置为null,你必须将关联的两端都设置为0..1我认为这行不通。该问题要求出现
license.Car.license==null
为真的情况。这是不可能的。我认为这是无法解决的,除非您创建两个独立的关联,这样每个许可证都有一辆车,每个车都有一个许可证集合,每个车都有零个或一个活动许可证。您可以向我们展示您的映射/删除代码吗?