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的正确命名空间。

  1. 打开Solution Explorer并找到.edmx文件
  2. 找到将嵌套在.edmx文件下的.tt文件
  3. 双击XXXModel.tt文件以在Visual Studio编辑器中打开它
  4. 使用“ObservableCollection”查找并替换两次出现的“ICollection”。 它们大致位于第296和484行。
  5. 使用“ObservableCollection”查找并替换第一次出现的“HashSet”。 此事件大约位于第50行。 请勿替换代码中稍后发现的第二次出现的HashSet。
  6. 使用“System.Collections.ObjectModel”查找并替换“System.Collections.Generic”的唯一匹配项。 这大约位于第424行。
  7. 保存XXXModel.tt文件。 这应该导致实体的代码重新生成。 如果代码未自动重新生成,则右键单击XXXModel.tt并选择“运行自定义工具”。