如何更改导航属性返回类型

本文关键字:返回类型 属性 导航 何更改 | 更新日期: 2023-09-27 18:07:19

我阅读了以下关于EF5数据绑定与WinForms的文章。

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

如何更改导航属性返回类型

我找到了一个解决方案。可以更改所有集合导航属性的类型。文本模板*。应该编辑Model First自动生成实体的tt文件。

EF5默认生成HashSet类型的导航属性:

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

将导航属性类型更改为ObservableCollection<T>,两行*。代码应该修改:

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

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