如何调整Entity Framework POCO T4模板以在单独的项目中创建类?

时间:2012-12-19 15:14:37

标签: entity-framework t4 entity-framework-5 edmx

我喜欢先保留我的代码 - 或者生成T4 - 将项目中的POCO与DbContext分开。这有助于确保我的实体类不会耦合到任何一个数据访问服务。

当我创建新的DB第一个EDMX模型时,向导会生成一个T4模板,以在与DbContext相同的项目中生成所有POCO。如何修改此模板以将类添加到单独的项目中?

仔细观察一下,将DbContext移动到一个新项目可能要容易得多,但T4为此没有调用fileManager.StartNewFile所以我不知道从哪里开始告诉它创建一个在其他地方提交。

2 个答案:

答案 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.-当然,您必须使用指令和命名空间进行少量更改,但它对我有用。