如何不需要将 ICollection 替换为 TT 文件中的 ObservableCollection?

How to not need to substitute ICollection to ObservableCollection in TT-file?

每次我用 EF 创建新的数据模型时,我都必须进入 TT 文件并替换每次出现的 ICollection 和第一次出现的 HashSet 用于 ObservableCollection 以及命名空间 Generic 用于 ObjectModel.

该过程已在 on the internet(“延迟加载”部分正上方的项目符号列表中进行了描述)并且似乎是针对以下缺点的一种变通方法一项新技术,随着时间的推移应该得到补救而不是需要。

是否可以自动创建可观察集合,或者所描述的方法是否是最有效和普遍应用的方法?

我认为根据您的需要自定义 .TT 模板是一种可接受的(或更多:最佳)做法。唯一的问题是,此自定义过程 repeatedly/manually 创建您自己的 .TT 并将其安装为 Visual Studio Item Template. My vote goes to this second option, which is a little application of DRY

但是您需要做好准备应对一个缺点:当原始 .TT 项目模板发生变化(新版本等)时,您也应该将这些变化应用到您的自定义模板上。最简单的方法:diff,然后选择最有效的方法:在您的自定义模板上复制版本更改在新版本上重新应用您的自定义更改。