1

我想用 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();
4

3 回答 3

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();
于 2012-06-14T14:47:07.810 回答
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 方言,你会没事的。

于 2012-06-14T21:00:28.493 回答
0

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

于 2012-06-14T14:52:02.393 回答