1

我刚刚安装了以下最新的软件包从的NuGet:功能NHibernate/NHibernate的为SQL2012

FluentNHibernate.1.3.0.733 NHibernate.3.3.2.4000(被要求FNH)

我m试图让我们的ASP.NET MVC 3应用程序运行使用SQL 2012(本机)。

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

我们也使用这种方法使用代码优先的方法设置新emtpy DB:

下面的代码是从我们的方法,我们建立NHibernate的会议所作。

我需要使用SQL 2012 dialiect,但最新的FNH或NHibernate都没有它从NuGet。

有没有人在Git中为这些代码提供状态代码?我可以看到FNH在2012年的Dialiect合并是在7个月前完成的(最新的NuGet发布后的一个月)。

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

有没有人知道下一个NuGet包装机会何时可用?

+0

请在您的问题中不要包含“提前致谢”。这是无用的噪音。 – Doorknob 2013-02-26 14:02:05

回答

3

只需使用SQL Server 2008方言。我不知道2012年会有什么变化需要更新方言。

+0

有非常重要的变化!序列支持和适当的限制语法等等。 – 2013-02-26 19:10:55

+0

我很难想象序列的用例。通过限制你是指新的分页语法?我的观点,我可以更好地说明,2008年的语法将在大多数情况下适用于2012年。 – 2013-02-26 19:25:34

+1

序列用于Hilo,并且比表格更好地工作。 2008语法适用于2012年,但新的更高效。 – 2013-02-26 20:42:39

3

它已经通过NHibernate的核心支持,所以它只是一个使用MsSql2012Dialect的事情:

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

MsSqlConfiguration.MsSql2012added到最新版本后不久流畅,所以你可以,如果你想抓住源头,但最终结果是一样的。

0

我目前的设置是使用NHibernate(3.3.2.4000)和FluentNHibernate(1.3.0.733),我的连接设置的第一部分看起来像这样,随时根据您的需要调整。请注意,即使我使用MsSql2008配置类上拉的连接字符串,我有我的话,从我所看到的2012年的方言设置为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(); 

只是增加了支持Sequences并登记iif的功能。