Я использовал все из них (некоторые чаще, чем другие), но до сих пор не могу решить, какой из них лучше всего использовать (с .NET 3.5). Каковы плюсы и минусы каждого из них при разработке?
SubSonic 3
Недостаточно образцов / документации (я знаю, что это вики, и люди могут обновлять ее, но может быть сложно отследить вещи - например, где находятся образцы приложений (WebForms, MVC ( текущая версия, а не до 3) WinForms)). Текстовые шаблоны не работали должным образом, когда я впервые их попробовал. Например, он не очищает имена таблиц, как это сделал SubSonic 2 (например, удаление / замена пробелов). Кроме того, вы не можете сказать, какие таблицы включать, только те, которые вы можете исключить (в ActiveRecord.tt
). Context.tt
и Structs.tt
генерируют код для всех таблиц (вам, вероятно, не нужны таблицы aspnet_ и, возможно, некоторые другие (сеансовые таблицы)).
Сказав это (надеюсь, я не слишком резок), это неплохой ORM для использования, если не считать мелких проблем.
Модель данных сущности (Entity Framework)
Visual Designer для настройки моделей. Синхронизация с базой данных может показаться немного «многословной» и сложной для понимания. Однако есть довольно приличная документация. Тем не менее, не так уж и подробно.
LINQ to SQL Также есть конструктор для создания моделей. Простой в использовании. Меньше возможностей, чем у двух других. Мне также пришлось применить исправление для неясной ошибки (не обновлялось, если в модели были внешние ключи, отличные от типа int
)
NHibernate
Вы смотрели на это в прошлом, но не так просто настроить по сравнению с приведенным выше. Любые образцы приложений ASP.NET MVC, использующие это?
В идеале мне нужен фреймворк, который:
a) может генерировать модели из базы данных
b) поддерживать синтаксис LINQ
c) извлекать только те данные, которые необходимы (например, для разбивки на страницы)
d) разрешать аннотации данных
e) может генерировать sql для обновления или создания новых таблиц в существующей базе данных