【问题标题】:Fluent NHibernate Database First ConfigurationFluent NHibernate 数据库首次配置
【发布时间】:2017-04-06 12:20:57
【问题描述】:

我是 Fluent Nhibernate 的新手。我们已经开始将它用于数据访问的后台应用程序。

客户端已经有一个数据库,因此我们希望使用数据库优先方法,因为我们不想生成表。

对于概念证明解决方案,我使用了以下会话工厂配置

var oracleConfiguration = OracleDataClientConfiguration.Oracle10.ConnectionString("Data Source=MyDB;User Id=MyUserName; Password=myPassword; Pooling=true");
        return Fluently.Configure()
                       .Database(oracleConfiguration)
                       .Mappings(m => m.FluentMappings.Add<NhtestMap>())
                       .ExposeConfiguration((config) => { new SchemaExport(config).Create(false, true); })
                       .BuildSessionFactory();

由于在运行此代码之前我的数据库中已经有此表,因此方法“ExposeConfiguration”已删除测试表“NHTest”。

我阅读了一些博客并了解到此方法在首次运行时创建表(这是 Code First 方法所需的行为)。但对我们来说,使用 DB First 方法,我们不想删除或创建表。

有人可以帮我正确配置会话工厂的 DB First 方法吗?

【问题讨论】:

  • 去掉 .ExposeConfiguration(...) 行

标签: c# nhibernate oracle11g fluent-nhibernate fluent-nhibernate-mapping


【解决方案1】:

试试这个:

var oracleConfiguration = OracleDataClientConfiguration.Oracle10.ConnectionString("Data Source=MyDB;User Id=MyUserName; Password=myPassword; Pooling=true");
        return Fluently.Configure()
                       .Database(oracleConfiguration)
                       .Mappings(m => m.FluentMappings.Add<NhtestMap>())
//  Remove this line //.ExposeConfiguration((config) => { new SchemaExport(config).Create(false, true); })
                       .BuildSessionFactory();

【讨论】:

    猜你喜欢
    • 2017-01-12
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多