Используя хранимую процедуру с Entity Framework или нет? - PullRequest
1 голос
/ 28 декабря 2010

Я хочу знать, использую ли я хранимую процедуру с Entity Framework или только пользовательские запросы Linq-to-Entities?

Рассмотрим, хочу ли я иметь заказы клиента.Таким образом, одно решение достигнуто с помощью хранимой процедуры, которая использует соединения двух таблиц и, например, идентификаторы возвращаемых заказов.

Другое решение достигается с помощью запросов Linq-to-Entities.Это решение имеет преимущество перед первым решением, то есть мы можем использовать пользовательские свойства навигации, чтобы легко перемещать информацию о заказах клиентов.но в хранимой процедуре, поскольку он возвращает только идентификаторы, это немного для доступа к информации о заказе.

Так что лучше, учитывая предпочтение второго решения?

1 Ответ

3 голосов
/ 28 декабря 2010

Оба решения работают - и поскольку вы не определили, что для вас значит «лучше», мы не можем сказать вам, какое решение «лучше».

Использование хранимых процедур в Entity Framework определенно возможно, особенно в EF4. Хранимая процедура имеет свои преимущества - вам не нужно предоставлять пользователю прямой доступ к таблице, вы можете позволить администратору БД настроить эти хранимые процедуры для обеспечения максимальной производительности, и вы можете делать такие вещи, как удаление Customer, просто вызывая сохраненный процесс. с CustomerID для удаления (вместо того, чтобы сначала загружать всего клиента, просто чтобы удалить его).

Таким образом, хранимые процедуры определенно имеют свои преимущества - недостатком для многих является то, что им приходится писать их на T-SQL, и теперь внезапно часть вашего приложения оказывается в вашем коде C #, а другая часть - в T-SQL хранимой процедуры. код.

Итак, еще раз: как бы расплывчато вы ни спросили, на этот вопрос нет действительно хорошего ответа. Оба подхода верны, и оба работают - это немного личного предпочтения, которое вы хотите использовать.

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