С Entity Framework Core можете да преминете към оригиналната SQL заявка при използване на релационна база данни. Когато необходимата заявка не може да бъде представена в LINQ, суровата SQL заявка може да се използва. Можете също да използвате сурови SQL заявки, ако използването на LINQ заявки причинява неефективни SQL заявки. Суровата SQL заявка може да върне универсален тип обект или безключов тип ентитет в модела.
Резюме: Изпълнение на SQL оператори и съхранени процедури с Entity Framework (EF).
Извършване на заявки, актуализации и изтривания към SQL оператори, и извикване на съхранени процедури и изгледи чрез следните методи:
- FromSqlRaw
- FromSqlInterpolated
- ExecuteSqlRaw
- ExecuteSqlInterpolated
FromSqlRaw и FromSqlInterpolated се използват основно за операции с заявки ExecuteSqlRaw и ExecuteSqlInterpolated извършват операции по добавяне, обновяване и изтриване в базата данни и връщат броя на засегнатите редове
Краят е интерполирана ключова дума, която обикновено представлява добавяне, изтриване, модификация и проверка на параметри, както и начин за устояване на SQL инжекционни атаки чрез синтаксис на интерполация на низове. Например:
Изведете SQL оператор, условията за заявка не се предават чрез сплайсинг, както е показано на фигурата по-долу:
Има няколко ограничения, които трябва да имате предвид при използване на нативни SQL заявки:
SQL заявките трябва да връщат данни за всички атрибути на типа обект. Имената на колони в набора от резултати трябва да съвпадат с имената на колоните, към които са свързани атрибутите. Обърнете внимание, че това поведение е различно от EF6. Връзката между атрибут/колона в оригиналната SQL заявка се игнорира в EF6, а имената на колони от набор от резултати трябва да съвпадат с имената на атрибутите. SQL заявките не могат да съдържат свързани данни. Въпреки това, в много случаи можете да използвате метода Включи веднага след заявката, за да върнете корелирани данни (виж Включи асоциативни данни).
(Край)
|