2010-04-11 3 views
1

Есть ли какой-либо другой метод, чем nHibernate, с помощью которого мы можем генерировать db-схему из определения класса? Мои классы не такие сложные и т. Д. (Несколько отношений «один ко многим»). Однако я хотел бы просто сохранить мои объекты в db и воссоздать схему, если это необходимо. Я застрял в .NET 2.0. Я не настолько разбираюсь в производительности для этого проекта, я просто ленив, чтобы создавать таблицы и писать save/load code и deel с помощью nHibernate xml.Создание db-схемы из класса C#

Благодаря

+5

Обязательно принимайте ответы на свои вопросы, нажав галочку рядом с ответом, который помог вам решить проблему. Это дает вам репутацию и делает ваши вопросы * намного более желательными. –

+0

Ничего себе, несмотря на то, что люди дают вам правильные ответы, вы не нашли времени, чтобы отметить любого из них, как принято! Считаете ли вы, что скоро сможете разбить эту тенденцию? – slugster

ответ

2

.NET классы не совместимы с реляционной моделью данных. Вот почему существуют ORM, такие как NHibernate. Без отображения, которое описывает преобразование модели в реляционные таблицы, вы не можете создать схему БД. Вы можете взглянуть на функцию FluentNhibernate automapping. Если вы придерживаетесь соглашений, он может создать схему базы данных из классов .NET.

+0

в соответствии с этим http://stackoverflow.com/questions/428151/fluent-nhibernate-api-and-net-2-0 .NET 3.5 требуется для свободного nhibernate. – Niran

+0

@ Ниран, это правильно, я пропустил это требование. –

+0

Неправильное использование. Automapping позволяет использовать соглашения, чтобы избежать создания файлов сопоставления, он не имеет ничего общего с генерацией схемы. –

-2

Да, это другие способы. Это называется «программированием» - вы, возможно, слышали об этом. В принципе, можно написать собственный генератор базы данных. Был там, сделал это, задолго до того, как nhibernate имел эту функциональность (или, фактически, даже существовал).

Сядьте, напишите свой генератор баз данных.

0

NHibernate может это сделать. Соответствующие классы - SchemaExport и SchemaUpdate - находятся в пространстве имен NHibernate.Tool.hbm2ddl. Вот one example.

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