2011-07-18 99 views
1

我在數據庫中有兩個表。一個是成員,一個是客戶。客戶表包含誰創建該行的兩列以及誰修改了該行。從每列設置外鍵以映射回成員表。所有這一切都是有道理的,直到 一個對數據庫運行實體框架,我得到爲我生成的以下代碼。爲什麼實體框架爲外鍵生成支持關係?

public Member() 
{ 
    public virtual ICollection<Client> Clients { get; set; } 
    public virtual ICollection<Client> Clients1 { get; set; } 
} 

public Client() 
{ 
    public virtual Member MemberForCreated { get; set; } 
    public virtual Member MemberForModified { get; set; } 
} 

我的問題是,爲什麼會實體框架認爲,使在成員表背收集到客戶表中的每個外鍵關係?我真的需要這種關係,還是我可以刪除的東西?任何信息都會有用。

附註:這些集合和關係可以在實體的導航屬性集合下的.edmx文件中找到。

回答

2

默認情況下EF關係是雙向的。如果你不需要它,你可以刪除任一方向。

您也可以重命名它們。你可能會,例如,想叫他們Member.ClientsCreatedMember.ClientsModified

Julie Lerman has a video examining unidirectional relationships.

+0

你會從數據庫中刪除或從.edmx文件的實體之間的關係?移除它是否會導致進一步的問題? – Chris

+0

查看我鏈接的Julie Lerman視頻。您從EDMX中刪除關係。你可以在設計師那裏做到這一點。這導致了EF 1中的「問題」,但EF 4中卻沒有。我們保留(在將它們重命名爲更好的東西之後),因爲它們偶爾在查詢中很有用。 –

相關問題