2012-07-10 28 views
0

我非常喜欢摆脱我们目前在我们的项目中摔跤的丑陋的EDMX blob。我们的项目首先是数据库,目前我们使用可怕和错误的EDM设计器创建EDMX文件,从中我们使用T4模板生成DbContext和POCO实体。是否有T4模板绕过EDMX并转到数据库以生成EF4.1 dbContext类?

随着项目的成熟,我们发现我们的数据库模型和实体模型之间的差异很小,实质上是一个1对1实体到表映射,这似乎是EF最喜欢的模式。我们唯一的偏差是我们四个实体之间单次使用Table-per-Type继承。这本身并没有被证明是一个很好的设计,并且很可能被忽略。

我的问题是 - 我们不需要EDMX文件,我们应该能够直接从数据库模型创建我们的DbContext和实体类,是否有T4模板可以做到这一点?

我几年前从Oleg Sych找到了this post,它提供了T4模板来完成这个任务,但输出是ObjectContext而不是DbContext。当然,我当然可以看看在这里做了些什么,但如果有人已经做到了这一点,我不想重新发明轮子。

有什么建议吗?

回答

1

我已经使用Entity Framework Power Tools扩展来生成POCO模型,从数据库映射类和dbContext。

+0

感谢这个 - 我有一个看看电动工具,但是从我能辨认出这是一次只处理。我需要保持数据库第一,每次我的数据库更改更新我的实体模型。这看起来会从现有的数据库生成代码优先解决方案,然后我必须首先维护代码。 – 2012-07-10 14:31:07

+0

好的,我花了更多的时间看这个 - 它确实可以迭代工作,每次数据库更改时我都可以重新运行反向工程。现在唯一的问题是用户界面很麻烦,反映EFPowerTools.dll显示,它将是非常直接的因素分析连接字符串设置代码并运行模板,关键功能似乎是Microsoft.DbContextPackage.Handlers.ReverseEngineerCodeFirst() ,但会首先询问开发者是否有计划提供这种类型的功能。 – 2012-07-11 09:32:38

相关问题