繁体   English   中英

数据库优先+ EF + POCO; T4代码生成?

[英]Database First + EF + POCO; T4 Code Generation?

我正在使用数据库第一种方法,使用实体框架,我刚刚阅读了有关POCO In EF的文章。 现在:如何直接从数据库生成POCO模板?

namespace My.Domain
{
    public class Entity
    {
        public virtual long EntityId { get; set; }
        public virtual string Example { get; set; }
        public virtual long NextId { get; set; }
        public virtual bool Lame { get; set; }
    }
}

事实上,我非常希望能够生成我手动生成的相同内容,只需一步:

  • 将每个表的ObjectSet添加到ObjectContext ,每个表都包含它的字段,属性getter和creation。
  • 创建POCO实体,最好是在另一个项目中,所有属性映射包括关系,标记为虚拟的属性以启用代理,显然在我选择的命名空间中。

有没有一种“简单”的方法来使用T4模板来实现这一点,还是有其他工具可以做到这一点? 也许某种Custom Tool而不是EF附带的Custom Tool ,但这是POCO导向的?

只要您使用EF 4.1,那么生成POCO对象就是“内置”的。 请参考这篇文章:

http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx

这只是一个小小的回归到更古老,更冗长的方式

http://blogs.msdn.com/b/adonet/archive/2010/01/25/walkthrough-poco-template-for-the-entity-framework.aspx

第一种方法现在更多的是建议的方法,但我想我还会给你更旧的方法:)

希望这符合您的需求:)。 我不确定在指定的命名空间和项目中创建它。 这听起来更像Code First(你可以做到并完美地连接到数据库?),但你可能能够将生成项目弯曲到你的心血来潮。 不过,这应该是朝着正确的方向发展

创建POCO实体,最好是在另一个项目中,所有属性映射包括关系,标记为虚拟的属性以启用代理,显然在我选择的命名空间中。

实体框架默认模板不能放在单独的程序集中,因为它需要配置和EDMX文件。

有没有一种“简单”的方法来使用T4模板来实现这一点,还是有其他工具可以做到这一点?

是的,实体接口生成器

https://entityinterfacegenerator.codeplex.com

该项目包含自定义的T4模板,可以为DbContext类和实体类生成接口和属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM