1

我阅读了以下有关 EF5 Databinding with WinForms的文章。

我使用 VS2010、.NET 4.0 和 EF5 Model First 方法,我不知道如何在 VS2010 EF 设计器中更改导航属性返回类型,而不更改自动生成的实体类。例如,我需要将导航属性返回类型从 更改ICollection<T>ObservableCollection<T>,但在属性视图中禁用了“返回类型”选项。

4

1 回答 1

1

我找到了解决方案。可以更改作为集合的所有导航属性的类型。应编辑 Model First 自动生成实体的文本模板 *.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

之后,实体类应该会自动重新生成。

于 2013-04-08T11:23:14.960 回答