0

我閱讀以下有關EF5 Databinding with WinForms的文章。如何更改導航屬性返回類型

我使用VS2010,.NET 4.0和EF5 Model First方法,並且我不知道如何在VS2010 EF Designer中更改導航屬性返回類型,而不更改自動生成的實體類。例如,我需要將導航屬性返回類型從ICollection<T>更改爲ObservableCollection<T>,但在屬性視圖中,禁用了「返回類型」選項。

+0

請不要使用問題標題作爲標記欄,而是使用標記欄來代替此目的。並且不要使用簽名 - 就用戶圖片和他的統計信息顯示而言,這不是必需的。問候, – abatishchev 2013-04-09 17:57:13

回答

1

我找到了解決方案。可以更改所有導航屬性的集合類型。模型的文本模板* .tt文件應該編輯第一個自動生成的實體。

默認情況下,生成EF5類型HashSet的導航屬性:

If(edmProperty.ToEndMember.RelationshipMultiplicity = RelationshipMultiplicity.Many) 
    defaultValue = " = New HashSet(Of " & propertyType & ")" 
    propertyType = "ICollection(Of " & propertyType & ")" 
End If 

要改變導航屬性鍵入ObservableCollection<T>,的* .TT代碼應當被修改的兩行:

If(edmProperty.ToEndMember.RelationshipMultiplicity = RelationshipMultiplicity.Many) 
    defaultValue = " = New ObservableCollection(Of " & propertyType & ")" 
    propertyType = "ObservableCollection(Of " & propertyType & ")" 
End If 

之後,實體類應該自動重新生成。