我有用户和地区。用户可以分配到任意数量的区域。
为了实现这一点,我有一个Users表,一个Regions表和一个UserRegion表,它只是UserID,RegionID(两列都构成了主键,它们与User和Region表有外键关系)。
实体框架不会将UserRegion表导入到我的数据模型中,而是创建每个User对象的属性,该对象是Regions列表,而另一个属性是每个Region对象,即User列表。这是非常有用的,除了我无法弄清楚如何从区域取消关联用户。
以下代码
Dim db as New DatabaseContext
Dim user = db.Users.Where(stuff).First()
user.Regions.Clear()
db.SaveChanges()
产生此错误:
The operation failed: The relationship could not be changed because one or more of the foreign-key properties is non-nullable. When a change is made to a relationship, the related foreign-key property is set to a null value. If the foreign-key does not support null values, a new relationship must be defined, the foreign-key property must be assigned another non-null value, or the unrelated object must be deleted.
如何摆脱我不想要的关系?
答案 0 :(得分:1)
我想出来了。
这种关系需要从双方中消除。所以代码应该是:
user.Regions.Clear()
For Each r in db.Regions
r.Users.Remove(user)
Next
db.SaveChanges()
现在我有一个很好的循环来完善这个功能但是很好。希望这有助于某人。