我在数据库中创建了一个外键关系,以便在本例中可以将另一个表作为属性访问House.Area
现在,如果我创建一个 House 对象并将 Area 设置为 null,我会在 SubmitChanges()
上收到以下异常:
An attempt was made to remove a relationship between a Area and a House. However, one of the relationship's foreign keys (House.AreaID) cannot be set to null.
好吧,我让上面的例子变得更简单了,但是下面的评论让我觉得我应该给出一个更好的例子
“House”表有一个名为 CityID 的列,映射到连接到 CityID 的“City”表,因为 FK 且 CityID 不能为空
“House”表还有一个名为 AreaID 的列,映射到连接 CityID 和 AreaID 的“Area”表,但 AreaID 可以为空。
House 始终需要有 1 个城市。 1个城市可以有很多房子。 房屋可以位于 0 或 1 区域。 1 个区域可能有零个或多个房屋。
我更新了 House.City = 新城市(....); House.CityID 确实获得了一个值<-已检查
错误更新
An attempt was made to remove a relationship between a Area and a House. However, one of the relationship's foreign keys (House.CityID, House.AreaID) cannot be set to null.
除非更新区域覆盖了 CityID 的值,这可以解释错误。请评论。有什么办法吗?
最佳答案
看来您的数据库不允许该字段为空。在 SQL Server 企业管理器(或您正在使用的任何数据库工具)中加载 House 表,并检查 AreaID 字段是否允许为空
关于c# - LINQ 到 SQL : Why can't I have a Zero to Many Cardinality,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2003904/