При работе с NHibernate следует ли создавать таблицы базы данных перед файлами карт? - PullRequest
1 голос
/ 21 августа 2009

Простой вопрос, надеюсь, с простым ответом. У меня сложилось впечатление, что я должен создать свои таблицы, а затем использовать файлы карт для сопоставления моих классов POCO с объектами базы данных. После нескольких уроков у меня есть этот код в моем наборе тестов:

 new SchemaExport(_configuration).Execute(false, true, false, false);

Что, очевидно, создает структуру таблицы, как определено в отображениях, поэтому я в замешательстве.

Ответы [ 2 ]

1 голос
/ 21 августа 2009

Вам нужны файлы сопоставления для SchemaExport.

В идеале вы сначала пишете / разрабатываете свои классы, потом пишете файлы сопоставления. При написании файлов сопоставления вы разрабатываете таблицы базы данных одновременно. SchemaExport просто создает схему из файлов сопоставления, где обычно доступна вся информация.

Рекомендуется SchemaExport, даже если он немного «спрятан» в документации.

1 голос
/ 21 августа 2009

Лучше иметь только одно место для изменений, в вашем случае вы вносите изменения в свои классы, и ваша БД автоматически обновляется - ожидаете ли вы чего-нибудь лучшего?

Иногда вы пишете новый код для существующей базы данных, поэтому сначала необходимо создать (или иметь) базу данных, а затем вручную подготовить сопоставления.

EDIT: Я использую Fluent NHibernate, так что это можно сделать полностью автоматически, не уверен в разных средах.

...