C# 数据库优先+;EF+;POCO;T4代码生成?
我使用DB优先的方法,使用实体框架,我刚刚读了这篇文章。现在:如何直接从数据库生成POCO模板C# 数据库优先+;EF+;POCO;T4代码生成?,c#,entity-framework,poco,t4,C#,Entity Framework,Poco,T4,我使用DB优先的方法,使用实体框架,我刚刚读了这篇文章。现在:如何直接从数据库生成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;
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
,每个表都有字段、属性getter和creationObjectContext
- 创建
实体,最好是在另一个项目中创建,所有属性映射包括关系,属性标记为虚拟以启用代理,显然是在我选择的命名空间中POCO
是否有一种“简单”的方法可以使用T4模板实现这一点,或者是否有其他工具可以实现这一点?也许是某种
自定义工具
而不是EF附带的工具,但这是面向POCO
的?只要您使用EF 4.1,那么生成POCO对象是“内置的”。请参阅本文:
这只不过是一条追溯到更古老、更冗长的道路的小猪
第一种方法现在更像是建议的方法,但我想我还是会给你一种更老的方法:)
希望这能满足您的需要:)。我不确定是否在指定的命名空间和项目中创建它。这听起来更像是先编写代码(您可能能够做到这一点并将其完美地连接到数据库?),但您可能能够根据自己的突发奇想调整生成项。不过,这应该是朝着正确的方向推进
创建POCO实体,最好是在另一个项目中,使用包括关系在内的所有属性映射,将属性标记为虚拟以启用代理,显然是在我选择的命名空间中
实体框架默认模板不能放置在单独的程序集中,因为它需要配置和EDMX文件
是否有一种“简单”的方法可以使用T4模板实现这一点,或者是否有其他工具可以实现这一点
是,实体接口生成器
此项目包含定制的T4模板,可以为DbContext类和实体类生成接口和属性。您使用的是什么版本的EF?如果是EF4,那么您需要获得一个也具有POCO T4的扩展。如果是4.1+,那么这大部分是内置的。我相信
4.1
,我在哪里可以检查这个;这到底是如何“内置”的?如果您想控制生成的内容,这里演示了一种方法: