Используете хранимую процедуру с Entity Framework или нет?

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

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

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

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


person r.zarei    schedule 28.12.2010    source источник
comment
Такой плохой английский, что трудно понять.   -  person kubal5003    schedule 28.12.2010
comment
Если вы используете Entity Framework, вы используете не Linq-to-SQL, а Linq-to-Entities.   -  person marc_s    schedule 28.12.2010


Ответы (1)


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

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

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

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

person marc_s    schedule 28.12.2010