Какой подход загрузки данных в Entity Framework 6 выбрать?
Подскажите, пожалуйста.
В EF 6 есть три способа загрузки данных: жадный, явный, ленивый.
Есть также возможность отправлять запросы SQL напрямую к БД через свойство Database.
Мне ближе и проще отправлять запросы SQL. Однако, я немного запутался и не могу понять следующее: мне обязательно придется использовать один из трех способов загрузки данных или я могу их использовать, если меня не устроит делать запросы SQL?
Это не взаимоисключающие вещи. Ленивая загрузка выполняется при обращении к свойству, если свойство еще не было загружено (она должна быть включена в настройках). Вы можете комбинировать эти подходы заранее загружая свойства с помощью жадной или явной загрузки для определенных запросов. Если свойство уже было загружено, то ленивой загрузке уже незачем работать. Главное понимать, как происходят запросы в БД при разных видах загрузки.
Используйте встроенный функционал сервера. Для MS SQL это bulkinsert. Для других баз есть аналоги.
EF слишком много проверок добавляет, для одной записи это приемлемо, но при пакетной вставке слишком много времени теряется.
Посмотрите разницу при использовании разных подходов https://github.com/vkorotenko/OrmTestSpeed
Илья, Не делайте предположения за кого-то, не благодарное это дело.
Я привел типичный кейс, который многим стоил головной боли, и более менее приемлемое решение.