#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 должен создать файл.