День 1455. #ЧтоНовенького
EF8: Необработанные SQL-Запросы на Несвязанные Типы
На прошлой неделе мы подробно рассматривали новые функции C#11, появившиеся прошедшей осенью. Пора уже заглянуть в будущее. Сегодня посмотрим, что нас ждёт в следующей версии Entity Framework.
Следующая, восьмая, версия Entity Framework должна получить новую интересную функцию: поддержку необработанных SQL-запросов без предварительного определения типа объекта результата в DbContext.
Это означает меньше шаблонного кода!
До сих пор приходилось создавать сопоставление для типов, возвращаемых из SqlQueryRaw. В Entity Framework 8 это будет выглядеть немного иначе, с чем нам поможет новая функция:
context.Database.SqlQueryRaw<MyUnmappedType>
(@"SELECT * FROM SomeTableOrView");
Это особенно удобно, если вы работаете с большим количеством SQL-представлений или чистого SQL. До сих пор вам приходилось внутри DbContext правильно сопоставлять типы CLR с типом результата SQL-выражения. Теперь это должно происходить по соглашению.
Несколько замечаний об ограничениях этой функции:
- тип сущности не может иметь отношений;
- свойства сопоставляются по соглашению с соблюдением атрибутов сопоставления;
- типы сущностей не должны иметь ключа.
Обсуждение этой функции на GitHub началось ровно 5 лет назад. Наконец, она добралась до кандидата.
Источник: https://steven-giesel.com/blogPost/d1f069fb-7f6d-4f80-a98f-734755474ae1