【问题标题】:extensible and modular ORM for asp.net mvc用于 asp.net mvc 的可扩展和模块化 ORM
【发布时间】:2011-09-11 15:11:13
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 在文章中,hanselman 提到了“Visual Studio 中的控制台”,这个控制台在哪里?
    • 我使用控制台包管理器并输出此错误“术语 'update-database' 未被识别为 cmdlet 的名称”,我什至更新到了最新版本的 EF。跨度>
    • 您需要先安装Nugt pakag manager console。使用Tools->Extension manager 安装它。然后使用Nueget Packag Manager 你需要安装'SQLMigrations'。
    • 我已经在 Visual Studio 中安装了“Nugt pakag manager console”,并且成功安装了 SQLMigrations,没有任何错误。
    • 你安装了吗Entity Framework - 4.1 Update 1microsoft.com/download/en/details.aspx?id=26825
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多