Подтвердить что ты не робот

В каких ситуациях я должен использовать Entity SQL?

Мне было интересно, есть ли ситуация, более целесообразная для использования ESQL?

В общем, я нахожу, что ESQL расстраивает (особенно со всеми специальными случаями, когда вам нужно полностью квалифицировать тип сущности), и, возможно, все, что делается с помощью ESQL, может выполняться через SQL или LINQ.

Но мне было интересно, когда ESQL лучше подходит для решения или будет иметь конкурентное преимущество над использованием SQL или LINQ (проще или быстрее для кода или лучшей производительности и т.д.).

Итак, что это за компромисс? Когда лучше использовать каждый из трех подходов при запросе EF4?

4b9b3361

Ответ 1

Я нахожу, что ESQL хорош для краевых случаев, например:

  • Где-то действительно сложно выразить что-то в LINQ.
  • Для создания очень динамических запросов.
  • Если вы хотите использовать специфичную для базы данных функцию, которая предоставляется поставщиком, который вы используете.

Кроме того, если вы знаете Entity SQL, вы сможете выразить QueryViews и Model-Defined Queries.

Ответ 2

Я столкнулся с этими довольно похожими вопросами (которые не появлялись, когда я печатал мой, ранее) в стеке над потоком, я думаю, что они имеют более глубокие обсуждения (хотя T-SQL не упоминается много, но это довольно красиво очевидно):

Обратите внимание, что два вопроса немного "старые", поэтому вы можете проверить некоторые данные на основе вашего текущего понимания EF4

Ответ 3

Так же, как упоминала Джули. Esql требуется для записи определенных функций, которые в свою очередь могут использоваться через запросы LINQ to Entities. В большинстве случаев вы будете использовать LINQ для Entities. Еще один случай, когда вы не можете использовать LINQ TO Entities для нас, когда вы хотите создавать запросы с помощью функций хранилища, будь то buit in или UDF. В этом случае esql - ваш единственный способ в EF1, но в EF4 вы можете использовать его функции, чтобы выявить те функции, которые будут использоваться в LINQ. Что касается производительности, esql работает лучше. но вы можете предпочесть производительность с помощью Linq с увеличением производительности, используя esql.