c# - 如何配置T4模板在不同项目中生成类

标签 c# .net entity-framework t4 entity-framework-4.1

我正在使用新的 Entity Framework 4.1 模型优先方法,该方法利用 T4 模板从可视模型生成类。

我能否配置该 T4 模板以在另一个项目中创建 POCO 类和上下文类(或通常它们生成的任何类)?

请注意,我不想将 T4 模板(带有 .tt 的文件)移动到另一个项目,然后只需将模板更改为持久性项目中的 EDMX 文件。我希望它真正在另一个项目中生成该类,然后生成模板的位置。这可能吗?

谢谢解答


注意:这不是问题 Generate POCO classes in different project to the project with Entity Framework model 的重复项作为作者,我想要的正是我不想要的:将整个模板与生成的类一起移动。

我完全理解移动整个模板并不意味着其他项目将变得具有持久性意识。尽管如此,我还是有理由不希望它与 POCO 类一起出现在同一个项目中。

最佳答案

多个项目共享相同的模板

每当我使用共享 T4 模板时,我:

  1. 创建解决方案文件夹
  2. 将我生成的T4模板放入其中,并将其扩展名设置为ttinclude
  3. 在需要时为我的项目添加额外的 T4 模板,但带有 tt 扩展名
  4. 根据模板功能,他们可能只需要引用共享的ttinclude 模板,如this example of mine我用来生成枚举类型的数据库查找表;

如果您使用提供的模板,则必须对它们进行一些修改才能使其正常工作,因为它们必须在与默认位置不同的位置引用 EDMX 文件。您也可以提供此路径作为您在每个项目模板中覆盖的局部变量,这样它将使用覆盖的路径而不是 ttinclude 文件中定义的默认路径。

关于c# - 如何配置T4模板在不同项目中生成类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5422261/

相关文章:

.net - mongodb 查询仅在.NET 代码中获取字段

c# - 检查.NET 3.5中对给定实例保留了多少引用

c# - 如何基于自定义属性添加一对多关系

c# - 从查询中选择相关实体而不是主要实体

c# - 如何将带有标志属性的枚举格式化为十六进制值?

c# - 更新面板抛出 javascript 错误 : "Microsoft JScript runtime error: Member not found"

c# - 消息框显示太早 - C#

c# - 如何在详细信息 View 中进行 html 解码?

.net - 远程服务器自动发现。广播与否?

c# - Entity Framework - 包括多个级别的属性