【问题标题】:Generate EF4 POCO classes first time only仅第一次生成 EF4 POCO 类
【发布时间】:2011-02-08 12:42:38
【问题描述】:

我遇到的问题是,使用 POCO 模板,只在第一次生成我的 POCO 类,而不是在重新运行模板时覆盖它们。我知道这听起来很奇怪,原因是我实际上是在更改这些模板并尝试生成元数据类而不是实际的 POCO 类,但是这些元数据类将是手工编辑的,我希望将来保留这些编辑但是仍然可以再生一定数量的它。除了文件的重新生成之外,我已经完全按照我的意愿工作了。

我查看了 T4,似乎有 a flag to do just this(请参阅 Output.PreserveExistingFile 属性),但我不明白在哪里/如何设置此标志。如果您能告诉我在默认 POCO 模板中的何处/如何设置它,那么我认为这就是我真正需要的。

谢谢!! :-)

【问题讨论】:

    标签: c# visual-studio-2010 code-generation t4 entity-framework-4


    【解决方案1】:

    PreserveExistingFile 属性仅在T4 Toolbox 中可用。 POCO 模板是普通的 T4,必须有人转换它们。有志愿者吗?

    【讨论】:

    • 这表明我对 T4 和 T4 Toolbox 是什么一无所知。 :-P 那么这是一项艰巨的任务吗?
    • 这将是直截了当的。 EF 模板将所有类集中在一个 .tt 文件中。 T4 Toolbox 将它们分成单独的 .tt 文件/模板类。如果您有兴趣,请联系我。
    【解决方案2】:

    你做错了。

    所有创建的类都是partial classes。如果您希望更改模板,请创建新的部分类并将您的代码放入其中。

    【讨论】:

    • 不能用元数据属性做到这一点。我需要向属性本身添加属性,而我想要添加属性的属性是代码生成的。但即便如此,我还是希望在第一次通过时为我预先生成一定数量的这个(即,当我为具有约 150 个表的数据库创建一个新的 DAL 时,我希望 NotNull 的“必需”属性存在列,int 列的数字等)。我们将手动添加更复杂的验证,但如果我们可以对琐碎的事情进行代码生成,它将节省大量时间。为什么不把它也保留在新桌子上呢??
    • 至于实际模型本身,我希望它始终与定义模型的 edmx 保持同步,这样我就想始终重新生成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多