FluentNhibernate支持SQL Server 2008 R2

时间:2012-06-14 12:50:12

标签: nhibernate fluent-nhibernate sql-server-2008-r2

我想用SQL Server 2008 R2实现一个Fluent Nhibernate应用程序。

我对Fluent Nhibernate 1.2是否支持SQL Server 2008 R2感到困惑。

如果支持将是什么配置。它看起来像下面的吗?

var config = Fluently.Configure()
                .Database(
                    MsSqlConfiguration
                    .MsSql2008R2
                    .ConnectionString(@"Data Source=.\SQLEXPRESS;AttachDbFilename='FNHLD.mdf';Integrated Security=True;User Instance=True"))
                    .Mappings(m => m.FluentMappings.AddFromAssemblyOf<NHibernateRepository<T>>())
                .BuildConfiguration();

3 个答案:

答案 0 :(得分:2)

实际上,我使用此配置连接到SQL Server 2008 R2 SP1数据库没有问题:

            var nhConfig = Fluently.Configure()
            .Database(MsSqlConfiguration.MsSql2008
                          .ConnectionString(connstr => connstr.FromConnectionStringWithKey("DBConnectionString"))
                          .ShowSql())//<-I use this for debug
            .Cache(c => c
                            .UseQueryCache()
                            .UseMinimalPuts()
                            .ProviderClass<HashtableCacheProvider>())//<--Cache Level Two
            .Mappings(m => m.FluentMappings
                               .AddFromAssemblyOf<Avaruz.Artemisa.Domain.Apm>())
            .CurrentSessionContext<WebSessionContext>()
            .BuildConfiguration();

答案 1 :(得分:2)

事实上,甚至MsSql2005方言也适用于SQL Server 2008 R2。

也就是说,如果在SQL Server 2008数据库上使用MsSql2005方言,NHibernate将无法使用有关SQL Server 2008新增的日期/时间的其他类型。

只是为了好玩,这里是2000-2012 SQL Server方言源代码的链接:

MsSql2000
MsSql2005
MsSql2008
MsSql2012

你可以看到那里的模式。 MsSql2000是一种主要方言。 MsSql2005继承自MsSql2005并有几个覆盖。 MsSql2008继承自MsSql2005,也几乎没有覆盖。 MsSql2012继承自MsSql2008。

SQL Server R2有点像服务包。数据库引擎本身没有太大变化,因此不需要单独的方言。使用2005年或2008年的方言,你会没事的。

答案 2 :(得分:0)

我也使用MsSqlConfiguration.MsSql2008。通过2008R2的发行说明,我无法看到任何需要不同方言的功能。