我有下面的類實體框架 - 刪除N:N關係
public class ObjectA{
private List<ObjectB> list;
}
ObjectA
和ObjectB
是N:N的關係。
我想只刪除關係,我用
while (objectA.list.Any())
objectA.list.Remove(objectA.list.First());
列表是關係表的 -
List<ObjectAobjectB>
我也得到
操作失敗:由於 中的一個或多個外鍵屬性不可空,因此無法更改此關係。當對關係進行更改時, 相關的外鍵屬性設置爲空值。如果外鍵不支持空值,則必須定義新的關係,必須爲外鍵屬性 分配另一個非空值,否則必須刪除不相關的對象。
編輯:更新模型定義
有三個表在我的模型:
* ClassA的 - SchemaA,
* ClassAClassB - SchemaA,
* ClassB的 - SchemaB,
在我的情況(和edmx)我只有方案A(ClassA和ClassAClassB)
因爲它是1:N到關係表。
這是從edmx生成的代碼。
public partial class ClassA:DomainEntity
{
....
public virtual ICollection<ClassB> ClassAClassB { get; set; }
}
我在做什麼錯?
謝謝。
看起來你的映射有些問題,因爲EF認爲關係是1:N。你的ObjectB是如何定義的? –
@LadislavMrnka:edmx中根本沒有ClassB。新增定義。謝謝, – Jeb
如果您在架構中有ClassAClassB,則您沒有映射M:N關係。您改爲具有兩個1:N關係,並且您的ClassA和ClassB必須具有指向ClassAClassB的導航屬性。爲什麼你有ClassAClassB映射?它是否包含除FK之外的其他內容? –