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 2008R2SP1データベースに問題なく接続しています。

            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 に答える