這取決於你是否使用獨立的realtions或外鍵關係。
對於獨立關係,您可以通過檢查多重性找到1:N的主要結尾。我會嘗試這樣的:
// check each navigation property
foreach (var navProperty in entity.NavigationProperties)
{
// use only properties where one end has * an second end has 1 or 0..1 multiplicity
// Not sure if the condition should not be reversed
if(navProperty.ToEndMember.RelaltionshipMultiplicity ==
RelationshipMultiplicity.Many &&
navProperty.FromEndMember.RelationshipMultiplicity !=
RelationshipMultiplicity.Many)
{
...
}
}
外鍵關係的情況下,你可以使用MetadataTools
這是從EF.Utility.CS.ttinclude包含類的方法。通常安裝在:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes
其中一個方法是GetPrincipalProperties(navProperty)
兩種方法已經在POCO T4模板中使用。
感謝您的及時迴應。你是對的。這已經在t4中使用了。但是如果我們有1-1關係,這個邏輯將不起作用。說一個客戶最多隻能有一個電話,如果我在設置關係時將客戶作爲主體,那麼我們如何找到主體「客戶」。 – WPFProgrammer 2011-02-16 23:51:57