我想用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();
答案 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的发行说明,我无法看到任何需要不同方言的功能。