asp.net mvc的可扩展和模块化ORM

时间:2011-09-11 15:11:13

标签: entity-framework nhibernate orm ef-code-first

我正在开发一个asp.net mvc项目,它包含一个核心库和其他库(作为模块)。在核心胆中我定义了主要实体,如UserAccount,Logging等,并在从DbContext继承的类中对它们进行扭曲。每个模块都有自己的实体和模型,以后每个模块都可以添加到主项目中,我的意思是它们尚未构建。考虑一个场景,我创建了一个新模块,其中包含新闻,评论和类别实体,我想将其插入主应用程序,并使用核心库中定义的DbContext,但正如您所知,在代码优先方法中,它会抛出一个异常,并希望我重新创建数据库,因为模型已经改变了。

这个问题有解决办法吗?以及使DbContext可扩展的方法?有人建议使用GenericRepository,但我不知道如何使它能解决我的问题(我已经将GenericRepository用于核心实体)。有些人在他的question中声明可以使用nHibernate。它真的适用于我的问题吗?

2 个答案:

答案 0 :(得分:0)

如果您的问题是重新创建数据库,则可以使用SQL迁移进行增量数据库开发。 http://www.hanselman.com/blog/EntityFrameworkCodeFirstMigrationsAlphaNuGetPackageOfTheWeek10.aspx

答案 1 :(得分:0)

我在msdn社区找到了一个解决方案:Extending DbContext for modular programming