2012-06-14 9 views
1

Я хочу реализовать приложение Fluent Nhibernate с SQL Server 2008 R2.Поддержка FluentNhibernate для SQL Server 2008 R2

Я в замешательстве, поддерживает ли 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(); 

ответ

2

На самом деле, даже диалект MsSql2005 будет работать на SQL Server 2008 R2.

То есть, если вы используете MSSQL2005 говор на базе SQL Server 2008, NHibernate только не будет иметь возможность использовать некоторые дополнительные типы относительно даты/времени, которые являются новыми для SQL Server 2008.

Просто для удовольствия, здесь являются ссылки на исходный код диалектов 2000-2012 SQL Server:

MsSql2000
MsSql2005
MsSql2008
MsSql2012

Вы можете увидеть рисунок там. MsSql2000 - вид основного диалекта. MsSql2005 наследуется от MsSql2005 и имеет несколько переопределений. MsSql2008 наследуется от MsSql2005, также с несколькими переопределениями. MsSql2012 наследуется от MsSql2008.

SQL Server R2 похож на пакет обновления. В самом ядре базы данных мало что изменилось, поэтому не было необходимости иметь отдельный диалект. Используйте либо диалект 2005 или 2008, и все будет в порядке.

+0

Спасибо Мирослав – viento

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(); 
0

Я также использую MsSqlConfiguration.MsSql2008. Просматривая примечания к выпуску за 2008 год2, я не вижу никаких функций, требующих другого диалекта.

Смежные вопросы