我有和數據庫第一創建的EMDX,我已經遵循示例here,所以現在我可以映射一個實體到我的數據庫中的多個表,並且這工作正常。如何將實體映射到多個表並具有導航屬性?
但我還需要具有FK在這個實體上的表上提供的導航屬性,我怎麼能實現這一點?
我在我的EMDX中有兩個名爲Carteira和另一個名爲Ativo的表,我希望Ativo的屬性也在Carteira上,因爲他們有0:1的關係,所以我已經完成了這個工作,這是工作! :)但我也希望是在Ativo類的導航性能上Carteira
請參閱樣本描述屬性:
class Ativo
{
public string Id { get; set; }
public IList<Valor> Valores { get; set; }
}
class Carteira
{
public string AtivoID { get; set; }
public Ativo Ativo {get; set;}
}
所以我想有像
Carteira。 Valores(這應該從Ativo中被推薦)。
請注意,我不想讓這個代碼手動使用部分類和acessing的導航中,我已經做到了這一點,我不喜歡這種方式,它看起來像這樣:
public partial class Carteira
{
public List<Valor> Valores
{
get
{
if (this.Ativo == null)
return null;
return this.Ativo.Valores;
}
}
}
我會想知道如何使用EMDX來實現這一點,這與簡單屬性可以做到的方式相同,這是可能的嗎?
它們都是PK ,但問題更復雜,因爲我不想在相關表中添加卡塔拉FK(第二級),因爲卡塔拉(第二級)有一個PK是Ati的FK vo(第一級)。我實際上使用模型中的映射功能(EDMX)創建了一個「虛擬」FK。但是你在評論中是正確的,它幫助我找到了實現的正確方法,所以對你+1 +1 –
很高興我的答案幫助了你,你可以在SQL中添加FK而不是執行它,在我們所做的真實世界場景中在引用表中沒有相應父項的孤兒記錄。 SQL允許您關閉強制執行,但是EF從SQL讀取關係時仍然可以正常工作,強制FK獨立於EF。 –
是的,但由於這是我只需要在應用程序上下文(EF)的東西,它直接在EF做這件事情更有意義,因爲我不會需要添加一個FK,在數據庫級別不提供任何服務,如果EF已經提供這樣一個功能。 –