我喜欢先保留我的代码 - 或者生成T4 - 将项目中的POCO与DbContext分开。这有助于确保我的实体类不会耦合到任何一个数据访问服务。
当我创建新的DB第一个EDMX模型时,向导会生成一个T4模板,以在与DbContext相同的项目中生成所有POCO。如何修改此模板以将类添加到单独的项目中?
仔细观察一下,将DbContext移动到一个新项目可能要容易得多,但T4为此没有调用fileManager.StartNewFile
所以我不知道从哪里开始告诉它创建一个在其他地方提交。
答案 0 :(得分:2)
您可以从DAL项目中排除.tt文件,然后将作为链接添加到另一个项目中。
这意味着您不必更改模板,因为它可以看到您的模型。
运行模板时生成的文件将包含在数据对象程序集中,尽管物理文件将位于DAL项目中。
唯一的缺点是,在更新模型时必须手动运行自定义工具。
答案 1 :(得分:1)
我说:
1.-在模型项目中创建一个文件(MyProject.Model proyect),一个带有所需名称的.tt文件...(本例中为MyModel.tt)
2.-转到DAL proyect,打开WhateverModel.tt文件并将内容复制到MyModel.tt ......
3.-删除WhateverModel.tt形式DAL proyect。
4.-在MyModel.tt中查找:
heroku config --app <YOUR-APP-NAME>
5.-并将其替换为:
const string inputFile = @"WhateverModel.edmx";
6.-并且......运行自定义工具来生成模型。
注意: 7.-当然,您必须使用指令和命名空间进行少量更改,但它对我有用。