实体框架不生成ObservableCollection

The*_*ros 7 c# winforms entity-framework-6

我在我的dataentry程序中使用EF6.EF不会生成ObservableCollection而是生成HashSet和ICollection,因此我必须手动更改它.不幸的是,每次我从数据库更新模型时,每个很多关系都会回到ICollection ......

Dom*_*see 9

.tt文件中的ObservableCollection替换ICollection和HashSet .
然后搜索该方法public string UsingDirectives.
在这种方法中应该有一条线includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "",.
仅替换GenericObjectModel.这将包括在模型中使用ObservableCollections的正确命名空间.


Lig*_*ian 5

    \n
  1. 打开解决方案资源管理器并找到 .edmx 文件
  2. \n
  3. 找到将嵌套在 .edmx 文件下的 .tt 文件
  4. \n
  5. 双击 XXXModel.tt 文件以在 Visual Studio 编辑器中将其打开
  6. \n
  7. 查找两次出现的 \xe2\x80\x9cICollection\xe2\x80\x9d 并将其替换为 \xe2\x80\x9cObservableCollection\xe2\x80\x9d。它们大约位于第 296 行和第 484 行。
  8. \n
  9. 查找第一个出现的 \xe2\x80\x9cHashSet\xe2\x80\x9d 并将其替换为 \xe2\x80\x9cObservableCollection\xe2\x80\x9d。该事件大约位于第 50 行。请勿替换稍后在代码中找到的第二次出现的 HashSet。
  10. \n
  11. 查找唯一出现的 \xe2\x80\x9cSystem.Collections.Generic\xe2\x80\x9d 并将其替换为 \xe2\x80\x9cSystem.Collections.ObjectModel\xe2\x80\x9d。它大约位于第 424 行。
  12. \n
  13. 保存 XXXModel.tt 文件。这应该会导致重新生成实体的代码。如果代码没有自动重新生成,则右键单击 XXXModel.tt 并选择 \xe2\x80\x9cRun Custom Tool\xe2\x80\x9d。
  14. \n
\n