2016-08-18 127 views
0

例如,我有這樣簡單的模型:刪除實體之間的關係,實體框架的核心

var address = _dbContext.Addresses.Add(new Address() 
{ 
    AddressId = Guid.NewGuid().ToString(), 
    StreetName = "Test street name" 
}).Entity; 
_dbContext.Libraries.Add(new Library() 
{ 
    LibraryId = Guid.NewGuid().ToString(), 
    Name = "Test library", 
    Address = address 
}); 

但是,我怎麼能打破它們之間的關係?如果我只是想在數據庫中保留測試庫和測試地址,但是打破它們之間的關係,我想測試庫的外鍵必須爲空。我怎樣才能做到這一點?

回答

0

您的實體模型必須在外鍵列上可以爲空。

public class Library 
{ 
    ... 
    public Guid? AddressId{get;set;} 
    public virtual Address Address {get;set;} 
} 

然後你可以設置地址爲空。否則這是不可能的我認爲

+0

我沒有明確地設置AddressId _null_,我將導航屬性Address設置爲null,這顯然是可以爲空的。 –

+0

這將不起作用,因爲entity-framework像加入語句一樣從GUID列的主鍵獲取引用對象。 –

+0

地址只是虛擬的,不會保存在您的數據庫中。 AddressId列被保存。 如果你只想得到null,如果你問關係,只要寫這樣的東西(我知道它不是完全正確的語法) '公共虛擬地址地址{獲得{返回null;};集{地址=值}} ' –