【问题标题】:Getting Fluent NHibernate To Build Database tables使用 Fluent NHibernate 构建数据库表
【发布时间】:2010-08-10 17:36:00
【问题描述】:

我正在使用 ASP.NET MVC2、Fluent NHibernate、StructureMap 和 PostgreSQL 构建应用程序。在 Fluent NHibernate 方面,我完全是新手。我从几个不同的来源获得了一个设置,但是当我构建和运行我的应用程序时,它不会在我的连接字符串中为数据库创建数据库表。我在几个不同的文件中有代码,所以我不确定如果我应该发布所有代码,我需要发布哪些代码。如果有一个要检查的键,请告诉我或让我知道发布所有代码。谢谢!

【问题讨论】:

    标签: asp.net-mvc postgresql fluent-nhibernate structuremap


    【解决方案1】:

    您可以使用 NHibernate Core 中的 SchemaExport 类将架构导出到数据库。

    要执行架构导出,请使用 Fluent NHibernate 数据库配置 API 中的 ExposeConfiguration 方法。

    var sessionFactory = Fluently.Configure()
       .Database(/* ... */)
       .Mappings(/* ... */)
       .ExposeConfiguration(cfg => new SchemaExport(cfg).Execute(true, true, false))
       .BuildSessionFactory();
    

    还有一个SchemaUpdate 类可用,它不会删除和重新创建您的架构,而是更新现有架构。如果您想保留数据库中的数据,这很有用。

    SchemaExport 和 SchemaUpdate 在 NHibernate.Tool.hbm2ddl 命名空间中可用。

    【讨论】:

    • 好吧,那没用。我可能没有为 MVC 设置正确的设置...嗯。有谁知道一个链接,其中概述了如何为 ASP.NET MVC 应用程序进行设置?
    • 看看 Sharp Architecture (sharparchitecture.net) 及其 Northwind 示例应用程序。
    【解决方案2】:

    FluentNhiberante SessionSource 对象公开了 CreateSchema。

    var sessionFactory = Fluently.Configure()...
    var sessionSource = new SessionSource(sessionFactory);
    sessionSource.BuildSchema()
    

    【讨论】:

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