我使用的是数据库优先方法,使用实体框架,我刚刚阅读了这篇关于 EF 中POCO
的文章。现在:如何直接从数据库生成 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
,每个表都有它的字段、属性获取者和创建。 - 创建
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
第一种方法现在更像是建议的方法,但我想无论如何我也会给你旧的:)
希望这符合您的需求:)。我不确定是否在您指定的命名空间和项目中创建它。这听起来更像是代码优先(您可能能够做到这一点并完美地连接到数据库?(,但您可能可以根据自己的心血来潮弯曲生成项。不过,这应该是朝着正确方向的推动。
创建 POCO 实体,最好是在另一个项目中,使用包括关系在内的所有属性映射,将属性标记为虚拟以启用代理,显然是在我选择的命名空间中。
实体框架默认模板不能放置在单独的程序集中,因为它需要配置和 EDMX 文件。
是否有一种"简单"的方法可以使用 T4 模板完成此操作,或者是否有其他工具可用于执行此操作?
是,实体接口生成器
https://entityinterfacegenerator.codeplex.com
此项目包含自定义的 T4 模板,这些模板可以为 DbContext 类和实体类生成接口和属性。