Еще раз LINQ to SQL или Entity Framework для нового проекта MVC 3 - PullRequest
3 голосов
/ 14 июля 2011

Прежде всего, мой опыт: довольно большая база данных (~ 100 таблиц с ~ 10-20 столбцами каждая) на MS SQL Server, и это всегда будут сначала SQL Server и база данных.

У меня есть несколькоопыт работы с WebForms и LINQ to SQL, но мне надоело создавать формы для редактирования всех упомянутых таблиц, поэтому бритва mvc 3 с ее Scaffolding просто загипнотизировала меня, и я мечтаю о том, что она генерирует все, что формы для меня

но выходит (или, может быть, я чего-то не понимаю), что леса работают только для EF DbContext.для L2S написано «неподдерживаемый DbContext».я пробовал MvcScaffolding с LinqToSqlScaffolding (набрал 'Set-DefaultScaffolder Repository LinqToSqlScaffolding.Repository' в консоли PM), но до сих пор не знаком ни с каким сопоставлением L2S.

Так что первый вопрос - "Есть ли способ(стабильный способ), чтобы получить леса для классов Linq to SQL "

, теперь я изучил некоторые из них и нашел все эти темы о L2S против EF, говоря то же самое:" L2S появился первым, так что это большестабильна, а EF еще молода, но она далека, она гибка, сопоставима и т. д. "

Первое, что я не получаю - как мне отобразить эту гибкую модель для моей корпоративной базы данных?я использовал конструктор для генерации класса для EF DbContext, как я делал это раньше для L2S, а для L2S он состоит из ~ 42000 строк.теперь я должен найти там некоторые свойства сущности и установить для них некоторые атрибуты, такие как «Required», «Display» и «Range», но дизайнер перезапишет их.я знаю, как реализовать частичный класс или частичный метод, но не знал о внесении каких-либо дополнений в свойства во внешний файл, так как дизайнер не мог их перезаписать.я думаю, это должен быть второй вопрос.

и если я должен вручную сопоставить свою корпоративную базу данных с EF, чтобы она была гибкой ... о_О, что ~ 42000 строк автоматически сгенерированного класса пугает меня-gees!это действительно необходимо?

Ответы [ 2 ]

6 голосов
/ 14 июля 2011
  1. Entity Framework в последнее время значительно продвинулся. Я бы посчитал это "стабильным". Новая интеграция с MVC3 является выдающейся.
  2. Что касается добавления пользовательских атрибутов DataAnnotation для проверки, эта статья описывает подход с использованием EF. (Прокрутите вниз до нижней части.) Поскольку вы не можете изменять сгенерированные свойства, для их применения используется настраиваемое сопоставление метаданных.
  3. Вы действительно хотите, чтобы он генерировал как можно больше для вас, чтобы не сойти с ума. EF имеет дизайн, очень похожий на L2S, и вы можете получить как можно проще или сложнее.

Кроме того, MVC3 будет генерировать строго типизированные представления для вас на основе любой объектной модели. Основное отличие состоит в том, что с EF для вас будет подключен ВСЕ , в то время как с пользовательским POCO или L2S вам придется выполнять всю сантехнику самостоятельно. (С этой точки зрения это работает точно так же, как и в более ранних версиях MVC.)

0 голосов
/ 17 февраля 2012

С моим ограниченным опытом я чувствую, что вызов EF напрямую из контроллера не выглядит хорошо. Я думаю, что база данных должна быть доступна через отдельный слой. Я предпочитаю контроллер, вызывающий службу WCF, которая может общаться с базой данных, используя ADo.NET/LINQtoSQL/EF/NHibernate,etc.

Предложения и разногласия welocme. Но, пожалуйста, не отрицайте - это только мои мысли. : -)

Рекомендации:

  1. Служба WCF с приложением asp.net mvc
...