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

标签 c# entity-framework poco t4

我使用的是数据库优先方法,使用 Entity Framework ,我刚刚阅读了这篇关于 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 和创建。
  • 创建 POCO 实体,最好是在另一个项目中,使用包括关系在内的所有属性映射,将属性标记为虚拟以启用代理,并且显然在我选择的命名空间中。

是否有一种“简单”的方法可以使用 T4 模板完成此操作,或者是否有一些其他工具可用于执行此操作?也许是某种Custom Tool 而不是 EF 附带的工具,但这是面向 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(您可以做到这一点并完美地连接到数据库?),但您可以根据您的心血来潮改变生成项目。不过,这应该是朝着正确方向的插入

关于c# - 数据库优先+EF+POCO; T4代码生成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9509923/

相关文章:

c# - c#线程间数据传递

c# - 如何摆脱 'property could not be set to a double value, you must set this property to a non-null value of type decimal'

c# - 我可以迁移到 Entity Framework 中没有迁移的情况下创建的数据库吗?

WCF REST 服务不会返回实体的 child

c# - 启动进程不适用于模拟

c# - 具有多个结果集的 NHibernate 存储过程

c++ - 由于日志的程序 block

asp.net-mvc-3 - 将 POCO 对象转换为 EntityFramework 中的代理对象

c# - System.IO.Compression DLL 丢失且可能存在版本冲突

entity-framework - Entity Framework 相关代码从c#改写到f#的难度