2013-07-15 4 views
1

Мы рассматриваем MVC 4 для приложения с большим размером.Entity Framework опасается за корпоративное решение

Наш администратор базы данных нервничает из-за «потери контроля» над базой данных и не любит идею кода приложения, определяющего/изменяющего структуру базы данных. Что я могу понять. Он считает, что это здорово для команды одного человека или небольшого магазина, но не видит, как она вписывается в корпоративное решение с администратором базы данных по персоналу. Куда он будет вписываться в процесс?

Я полагаю, что EF широко используется в корпоративных средах, есть ли какие-либо хорошие статьи, чтобы лучше информировать нас о том, как EF используется в отличие от традиционной среды, в которой коды кодеров и пардеры DB управляют таблицами?

+0

Сначала используйте БД, тогда он будет счастлив. –

+0

DBA? EF? Что они имеют в виду? Также ваш вопрос очень упрямый, что делает его плохо подходящим для программирования Q & A сайта. Рассмотрите возможность пересмотра своего вопроса таким образом, чтобы мы могли отвечать на конкретные, более объективные аспекты проблемы. – jsalonen

+1

Возможно, этот вопрос может быть кандидатом для разработчиков stackexchange.com/programmers. – devuxer

ответ

3

У вас возникло непонимание того, что такое Entity Framework и как оно используется и может быть использовано.

Entity Framework известен как ORM или объект Relational Mapper. Для ORM нет ничего, что отвлекает от администратора базы данных.

Это правда, что EF может генерировать таблицы, модели данных, sql и т. Д., Но это не ИМЕТЬ. Другие ORM тоже. В его сердце ORM просто принимает набор результатов и сопоставляет его с коллекцией объектов. Это также можно выполнить с помощью хранимых процедур.

Большинство людей любят делать специальные запросы, и EF отлично подходит для этого, но если ваш администратор базы данных требует, чтобы все запросы были написаны им (или одобрены им и использовались sprocs), то он, безусловно, может быть использован сюда.

Текущая версия Entity Framework действительно поддерживает только сопоставление запросов, но EF 6, который должен быть выпущен к концу года, добавит поддержку вложений, обновлений и удалений. Вы можете делать это сегодня как запросы, но они не сопоставляются с объектами.

Но, честно говоря, ваш администратор базы данных должен действительно смотреть на факты, которые DBA становятся все менее необходимыми. У них всегда будет место, но им действительно нужно признать, что они не могут контролировать контроль над выполнением запросов, которые они когда-то имели. Пользователи (и, следовательно, разработчики) требуют более динамических запросов, а это означает выполнение сгенерированного sql.

+1

Мне действительно пришлось бы не согласиться с тем, что DBA работает по проекту масштаба предприятия с EF5 я считаю, что роль DBA важнее, чем когда-либо. Я также чувствую, что с помощью модели EF, доступной для разработчиков для доступа, однако они хотят, DBA действительно теряет много контроля над производительностью базы данных и, как таковой, не всегда в состоянии, когда они могут улучшить код доступа к данным , И определенно проблемы производительности будут преодолены на любом крупномасштабном приложении базы данных, мой опыт в том, что разработчики .NET просто не очень хорошо подходят для этой задачи. YMMV –

+0

@KevinDahl - Очевидно, что когда разработчики берут на себя роль специального запроса, они должны нести ответственность за производительность запроса.Если они не соответствуют задаче, то их следует заменить кем-то, кто есть, или они не должны использовать инструмент таким образом. Кроме того, вы можете активировать и изучить Entity Framework, поскольку это просто другой язык запросов. Я хочу сказать, что все, что нужно сделать, не является решением, поскольку оно запрещает бизнесу быть столь же гибким, как и должно быть. Стараясь стать частью решения, вы становитесь более серьезной проблемой. –

+0

Очевидно или нет, я не нашел, что он вообще работает именно так. Я также довольно хорошо разбираюсь в EF/LINQ и делаю все возможное, чтобы указать на неправильные шаблоны, такие как чрезмерные включения, или запросы LINQ в циклах foreach и т. Д. Когда вы являетесь командой из одного или двух администраторов баз данных с 10-15 разработчики, однако, это тяжелая битва. Я думаю, что администратор баз данных в исходном вопросе прав, чтобы быть осторожным, потому что мне трудно полагать, что мой опыт уникален. –

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