Запись базы данных eSQL независима или нет? - PullRequest
1 голос
/ 07 апреля 2010

Используя EF, мы можем использовать LINQ для чтения данных, что довольно просто (особенно при использовании быстрых вызовов), но у нас меньше контроля, если мы не пишем eSQL самостоятельно.

  1. Является ли написание eSQL фактически хранилищем данных независимым кодом?
    Так что, если мы решим изменить хранилище данных, можно ли использовать те же операторы?
  2. Представляет ли написание строк eSQL в вашем коде серьезные угрозы безопасности, аналогичные написанию операторов TSQL в виде простых строк в коде C #? Вот почему SP рекомендуется. Можем ли мы по-прежнему перемещать сценарии eSQL за пределы кода и использовать некоторые другие методы, чтобы сделать их немного более безопасными?

1 Ответ

1 голос
/ 14 апреля 2010
  1. ESQL вообще не зависит от базы данных, поэтому его можно использовать как LINQ to Entities. Но учтите, что у него есть более серьезные ограничения. Он не имеет DML, DDL и специфичных для БД способностей.
    Основным недостатком ESQL является то, что даже простой запрос, содержащий пару строк, может быть переведен в чудовищный SQL-запрос для конкретной СУБД, поэтому необходимо проверить сгенерированный SQL на соответствие и проанализировать, является ли он оптимальным.
  2. ESQL не будет выполняться непосредственно в базе данных, он будет переведен в SQL. Обсуждение безопасности EF обычно начинается с защиты строки соединения, затем обсуждается безопасность модели и только после анализа защиты запроса. Разработчик должен решить, должен ли особый запрос быть защищен.
...