1

我刚刚从 NuGet 安装了以下最新包:

FluentNHibernate.1.3.0.733 NHibernate.3.3.2.4000(FNH 需要)

我正在尝试使用 SQL 2012(本机)运行我们的 ASP.NET MVC 3 应用程序。

以下代码取自我们构建 nhibernate Session 的方法:

    var sqlConfig = MsSqlConfiguration.MsSql2005.ConnectionString(ConnectionString).AdoNetBatchSize(30);

我们还使用这种方法来使用代码优先方法来配置新的 emtpy 数据库。

我需要使用 SQL 2012 方言,但最新的 FNH 或 NHibernate 都没有来自 NuGet。

有人知道 Git 中这些代码的状态吗?我可以看到这个 2012 方言的 FNH 合并是在 7 个月前完成的(在最新的 NuGet 发布一个月后)。

其他人在做什么来连接到 SQL 2012?

有谁知道这些的下一个 NuGet 软件包何时可用?

4

3 回答 3

3

只需使用 SQL Server 2008 方言。我不知道 2012 年有任何需要更新方言的变化。

于 2013-02-26T14:42:25.823 回答
3

NHibernate 核心已经支持它,所以只需使用MsSql2012Dialect

var sqlConfig = MsSqlConfiguration.MsSql2005.Dialect<MsSql2012Dialect>();

MsSqlConfiguration.MsSql2012在最新版本发布后不久被添加到 Fluent,因此您可以根据需要获取源代码,但最终结果是相同的。

于 2013-02-26T19:05:36.680 回答
0

我当前的设置是使用 NHibernate (3.3.2.4000) 和 FluentNHibernate (1.3.0.733),我的连接设置的第一部分看起来像这样,请随时根据您的需要进行调整。请注意,即使我使用MsSql2008配置类提取连接字符串,我已将方言设置为MsSql2012Dialect

var cfg = Fluent.NHibernate.Cfg.Fluently.Configure()
    .Database(FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2008
             .ConnectionString(c => c.FromConnectionStringWithKey("KeyName"))
        #if DEBUG
        .ShowSql()
        .FormatSql()
        #endif
        .Dialect<NHibernate.Dialect.MsSql2012Dialect>()
        .AdoNetBatchSize(50)
    )
    //Other chained methods (for setting up cache, mappings, etc)
    //.Mappings(m =>
    //{
    //
    //}

var sessionFactory = cfg.BuildSessionFactory();

据我所知,2012 Dialect 只是增加了对函数的支持Sequences和注册iif

于 2013-02-26T19:18:17.360 回答