Поддерживает ли FluentNHibernate SQL Server Compact Edition 4.0?

#fluent-nhibernate

#fluent-nhibernate

Вопрос:

Я знаю, что они поддерживают SQL CE. Я думаю, что они поднимаются до 3.5??? Я только что скачал CE 4.0 и хотел протестировать его в своем проекте, но я не могу правильно настроить его во FluentNHibernate…

Поддерживается ли 4.0:

Какую версию я должен загрузить и не мог бы кто-нибудь привести мне пример того, как ее реализовать?

Ответ №1:

FNH поддерживает CE 4.0, попробуйте эту конфигурацию:

 var config = Fluently.Configure()
 .Database(MsSqlCeConfiguration.Standard.ConnectionString("Data Source=DatabaseFileName.sdf"))
 .Mappings(m =>
 {
     m.FluentMappings.AddFromAssembly(typeof(Entity).Assembly);
 })
 .BuildConfiguration();
  

Сборки с вашими сопоставлениями сущностей следует добавлять через AddFromAssembly. DatabaseFileName.sdf — это путь и имя файла имени файла базы данных. Путь может быть или абсолютным, или относительным к рабочему каталогу приложения (Windows application: System.AppDomain.CurrentDomain.BaseDirectory; веб-приложение: System.AppDomain.CurrentDomain.RelativeSearchPath).

Протестировано на FNH1.0, NH2.1 и SQL Server CE 4.0.

РЕДАКТИРОВАТЬ: файл базы данных должен быть создан ядром database engine:

 using (var engine = new SqlCeEngine(connectionString))
{
    engine.CreateDatabase();
}
  

Вот пример для CE 3.5, но он должен работать и с CE 4.0: http://nhdatabasescopes.codeplex.com/SourceControl/changeset/view/f9e824a457e8#DatabaseScopes/MsSqlCeInFilePrivateScope.cs .

Комментарии:

1. Вы тестировали это с помощью Compact Edition 4.0 ?

2. В примере, описанном выше, где находится «DatabaseFileName.sdf», физически хранящийся в вашей файловой системе? Где вы разместили свои библиотеки DLL для SQL Server CE?

3. Да, он отлично работает с CE 4.0. Мой проект ссылается на сборку, которая помещена в папку program files (что-то вроде этого c:Program FilesMicrosoft SQL Server Compact Edition v4.0) — скорее всего, не оптимальный способ развертывания XCOPY. Для сборки Copy Local должно быть установлено значение true. Файл базы данных создается в базовом каталоге вашего процесса — системы. AppDomain. CurrentDomain.BaseDirectory (приложение Windows) или система. AppDomain. CurrentDomain. RelativeSearchPath (веб-приложение).

4. Хорошо! FluentNHibernate автоматически создает для вас файл *.sdf, когда вы настраиваете его на Fluently. Настроить()?

5. Это как экзамен в школе :). Компонент Database Engine должен создать файл.