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