.net Active Record ORM с полной поддержкой миграции - PullRequest
4 голосов
/ 01 октября 2009

Я ищу .net OR / M, который использует шаблон Active Record и позволяет разработчику определять миграции, которые обновят схему базы данных в коде. Я видел ActiveRecord на http://www.castleproject.org/activerecord/index.html - но он плохо документирован (с ужасно устаревшими образцами) и нет готового к выпуску выпуска. Моя целевая СУБД - MSSQLE 2008; но предпочтительно сгенерированный SQL будет совместим с MSSQL 2000.

Я бы предпочел не использовать nHibernate, так как я понимаю, что для поддержки схемы требуется файл XML, и он не поддерживает миграцию. Благодаря отражению и атрибутам .net использование библиотекой XML в этой ситуации недопустимо и не очень похоже на обычное использование платформы.

Моя главная задача - сохранить схему данных. Поскольку это относится к проекту ASP.NET MVC, необходимость синхронизировать схемы базы данных между средами является обязательной. Тот факт, что я не могу найти ни одного OR / M со встроенной поддержкой миграции, удивителен, учитывая популярность .net, поскольку, как я уже говорил, настраиваемые атрибуты и рефлексия делают это очень просто в коде.

Возможность определения моих сущностей без внешнего файла конфигурации (например, ADO.NET Entity Framework) вне моего класса сущностей - это то, чего я хочу избежать. Нет причин, по которым OR / M не может вывести имена столбцов с помощью пользовательских атрибутов связанных свойств.

В любом случае, есть предложения? То, что я прошу, возможно, не существует; и если да, то есть ли из первых рук использование других .net OR / Ms, которыми вы можете поделиться?

Ответы [ 2 ]

4 голосов
/ 01 октября 2009

Я бы предпочел не использовать nHibernate, так как Я так понимаю, для этого нужен файл XML поддерживать схему

Посмотрели ли вы Fluent-NHibernate , он позволяет вам определять свои модели, используя свободный .net API.

Пример с сайта:

public class CatMap : ClassMap<Cat>
{
  public CatMap()
  {
    Id(x => x.Id);
    Map(x => x.Name)
      .Length(16)
      .Not.Nullable();
    Map(x => x.Sex);
    References(x => x.Mate);
    HasMany(x => x.Kittens);
  }
}

(Fluent-NHibernate также поддерживает автоматическое сопоставление , в соответствии с соглашением)

NHibernate также поддерживает Создание и обновление схемы . Создание схемы работает, я уже много раз использовал это в веб-проектах и ​​модульных тестах в памяти. Еще не использовал функцию обновления, потому что какое-то время я использовал Migrator.NET , которая справляется с этим.

0 голосов
/ 01 октября 2009

SubSonic (ссылка удалена) обеспечивает поддержку миграции и работает довольно хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...