entity framework不生成ObservableCollection
我在我的dataentry程序中使用EF6。 EF不会生成ObservableCollection而是生成HashSet和ICollection,因此我必须手动更改它。 不幸的是,每次我从数据库更新模型时,每个多元关系都会回到ICollection …
用.tt
文件中的ObservableCollection替换ICollection和HashSet。
然后搜索方法public string UsingDirectives
。
在这种方法中应该有一行includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "",
includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "",
仅使用ObjectModel
替换Generic
。 这将包括在模型中使用ObservableCollections的正确命名空间。
- 打开Solution Explorer并找到.edmx文件
- 找到将嵌套在.edmx文件下的.tt文件
- 双击XXXModel.tt文件以在Visual Studio编辑器中打开它
- 使用“ObservableCollection”查找并替换两次出现的“ICollection”。 它们大致位于第296和484行。
- 使用“ObservableCollection”查找并替换第一次出现的“HashSet”。 此事件大约位于第50行。 请勿替换代码中稍后发现的第二次出现的HashSet。
- 使用“System.Collections.ObjectModel”查找并替换“System.Collections.Generic”的唯一匹配项。 这大约位于第424行。
- 保存XXXModel.tt文件。 这应该导致实体的代码重新生成。 如果代码未自动重新生成,则右键单击XXXModel.tt并选择“运行自定义工具”。