2011-11-06 22 views
1

我覺得這很愚蠢,但是,我只是不能解決如何創建一個到零或一個關係,同時給出entityIDentity屬性。如何在實體框架中與entityID屬性結合執行(空)一個到零或一個關係?

看看下面的例子:

public class base 
{ 
public int ID {get;set;} 
} 

public class linked 
{ 
public int ID {get;set;} 
public string test {get;set;} 
} 

如果我把public virtual linked linked {get;set;}到基類,一切正常,我得到一個爲空的1到0或1的關係。然而,我明白只使用int/EntityID來存儲關係並結合虛擬進行延遲加載的好處(例如public int linkedID {get;set;}與上面的虛擬結合),但我似乎無法解決如何創建這個,使用相同的關係。

我已經嘗試過使用流暢的API Entity<base>().HasOptional(x=>x.linked).WithRequired(),這是我認爲它應該是,這會創建0到0或1的關係,但它不是可以爲空,我不明白給予HasOptional

我以爲我在理解實體框架方面已經轉過了一個彎道,但是這真的把我拋棄了!我不明白我出錯的地方。任何人都可以幫忙嗎?

回答

2

嘗試使用

public int? linkedID {get;set;} 

其中使用不可爲空,因此將默認爲0。

+0

OMFG的詮釋你的,我不能相信這是多麼簡單了!由於您必須在FluentAPI中手動定義項目,所以我真的希望在與模型相矛盾時出現某種異常/錯誤......無論如何....我覺得自己像一個簡單的'''符號的白癡!非常感謝。 – wil

相關問題