0
我有以下兩個實體在我的應用程序(使用的Code First):實體框架 - 確定是否存在關係,而不在一端的導航屬性
public class Note
{
public int NoteId { get; set; }
public string Text { get; set; }
}
public class Decision
{
// PK/FK
public int NoteId { get; set; }
// other fields ...
public virtual Note Note { get; set; }
}
我可以這樣來配置我的關係:
modelBuilder.Entity<Decision>().HasRequired(d => d.Note).WithOptional();
決定必須有一個註釋,但注意並不總是有一個決定。一邊是1:1映射是可選的。
我想要一個屬性在我的筆記,讓我知道是否有一個決定。就像這樣:
public bool HasDecision
{
get
{
// not sure what to do here
}
}
有沒有辦法做到這一點,而沒有決定是一個懶的加載屬性上注意?
我想我可能最終不得不只是爲此創建存儲庫/服務的方法,但我不知道是否有可能對實體本身做。將實體的引用傳遞給實體可能是不可取的? – Dismissile
@Dismissile:是的,在我看來,這是不可取的:1)由於POCO實體總體上被認爲是「持久性無知」的想法,2)由於POCO和背景的可能不同生命週期:將上下文注入實體,然後處理上下文。使用你的財產然後(=發出查詢)會拋出一個異常。那麼,後者對於懶惰加載的導航屬性也是如此。 – Slauma
在我看來,生存問題並不是真正的問題,因爲我的上下文是針對請求的整個生命週期,但我確實同意他們應該根本沒有任何關於上下文的參考。感謝您的輸入。 – Dismissile