Max*_*Max 44 .net code-generation entity-framework poco repository-pattern
我正在尝试使用VS2010使用EF4的存储库模式.
为此,我通过右键单击实体模型设计器并单击添加代码生成项来使用POCO代码生成.然后我选择POCO模板并获取我的课程.
我希望能够做的是将我的解决方案结构化为Entity(POCO)类的单独项目以及实体模型和存储库代码的另一个项目.
这意味着我的MVC项目可以将POCO类用于强类型视图等,而不必知道存储库或必须引用它.
要将它们全部插入,我将有另一个带接口的独立项目并使用IoC.
听起来不错我只是不知道如何将类生成到自己的项目中!我可以复制它们,然后更改它们的名称空间,但我想在每次更改数据库中的模式并希望更新我的模型时避免手动工作.
谢谢
Ale*_*mes 39
实际上,EF 4.0中的T4模板设计时考虑到了这种情况:)
有2个模板:
您应该将ModelName.tt文件放在POCO项目中,只需将模板更改为指向持久性感知项目中的EDMX文件即可.
听起来很奇怪我知道:现在有依赖,但它是在T4代时,而不是在编译时!这应该没问题?因为由此产生的POCO组件仍然是完全持久的无知.
请参阅以下步骤5和6:http://blogs.msdn.com/adonet/pages/walkthrough-poco-template-for-the-entity-framework.aspx了解更多信息.
希望这可以帮助
亚历克斯
@缺口,
另外还要注意Alex给出的链接.一旦我将主.tt文件移动到另一个项目,从".Context.tt"文件生成的文件将无法编译,因为它缺少对位于不同命名空间中的POCO文件的引用(因为我想要我的ObjectContext与我的POCO文件位于不同的域中).我不得不修改".Context.tt"文件以获得using Poco.Namespace
(其中Poco.Namespace
是生成POCO文件的命名空间的名称).然后这允许我的项目编译.
乔尔