Эффективная работа с EntityFramework Core

  Рет қаралды 10,504

Sergei Calabonga

Sergei Calabonga

Күн бұрын

Пікірлер: 54
@alexanderraf5553
@alexanderraf5553 3 жыл бұрын
Все неплохо, но забыли еще о главной вещи рассказать. О IQueryable и IEnumerable. Что например если есть фильтрация 'Where' и привести в .ToList() (Ienumerable) сразу, то под капотом выберутся все записи в память, а только потом фильтрация пойдет.
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Хорошее замечание, правильное. Спасибо.
@Денис-в5д5ь
@Денис-в5д5ь 3 жыл бұрын
Только начал смотреть, но коммент все равно нужен для продвижения ))
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Спасибо! Очень нужен!
@alekseev74
@alekseev74 2 жыл бұрын
Уже к .NET 5 EF стал достаточно умен. Можно тонко настроить LINQ-запросы, ChangeTracker (когда следить\не следить), транзакции и т.д. В целом использую EF в 90% случаев, ибо быстро и удобно.
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
Согласен
@LehusWV
@LehusWV 3 жыл бұрын
Отлично! Можно ещё видос с примерами запросов, чтобы с несколькими таблицами и закрученными условиями.
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Можно как практическое занятие если поделитесь реальным проектом, чтобы было приближено к реальности.
@mt89vein
@mt89vein 8 ай бұрын
"lazy loading плохо так как если вы начинаете сериализовать объекты так все грузится" просто не сериализуйте никогда модели БД, они не для этого, используйте DTO
@SergeiCalabonga
@SergeiCalabonga 8 ай бұрын
Да, это тоже вариант.
@filoffs
@filoffs 3 жыл бұрын
Спасибо за видео)) как всегда, интересно и полезно)
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Спасибо за высокую оценку.
@valeriik9135
@valeriik9135 3 жыл бұрын
Спасибо, Сергей! было очень структурированно и полезно. хотелось бы посмотреть про фишки EF 6
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
С EntityFramework 6 всё очень похоже, хотя есть некоторые нюансы.
@Kulibins1
@Kulibins1 3 жыл бұрын
Привет. пару «замечаний» индексы ускоряют выборку множества где этот индекс применим. Инмемори не всегда на 100% = тому что произойдет на реальной бд, особенно, если будет бд не поддерживающая этот режим, например тот же postgresql. И в начале ролика было сказано про альтернативы, и я похоже не правильно понял, потому что подумал будет еще сравнение с ними, их плюсы и минусы. И для новичков entity делает миграции - много раз видел как бд ломают самописными запросами на обновление, а тут меньше человеческого фактора ( знаю что в ролике упоминалось, но очень вскользь)
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
1. InMemory вообще не привящана к БД 2. Про миграции кратко - в кривых руках и калькулятор зависает. 😄
@iharshyrynkou1834
@iharshyrynkou1834 3 жыл бұрын
Спасибо! Много хороших видео выходит у Вас на канале)
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Спасибо, приятно слышать
@dns_kr
@dns_kr 10 ай бұрын
Здраствуйте. Очевидно что лучше сохранять список объектов в таблицу за один раз, чем 100 раз добавлять по одному. У меня есть транзакции которые приходят по времени хаотично. Как мне лучше всего сделать их сохранение? Я думаю лучше использовать промежуточное хранилище, чтобы всём скопом сохранять в бд. Пытался сделать через Apache Kafka, но сообщения там приходят по одному вместо группы. Есть ли у Вас мысли как лучше?
@SergeiCalabonga
@SergeiCalabonga 10 ай бұрын
Я бы использовал MongoDb, если бы возникла подобная ситуация. Отдельно - накопление, отдельно - сохранение в БД.
@dns_kr
@dns_kr 10 ай бұрын
@@SergeiCalabonga спасибо
@Бот5329-и5г
@Бот5329-и5г 2 жыл бұрын
Круто, так много полезной инфы для нубаса
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
Добро пожаловать на канал! :)
@spacerecluse
@spacerecluse 3 жыл бұрын
context.Configuration.AutoDetectChangesEnabled = false;
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
@МаксимБондарук-э3ж
@МаксимБондарук-э3ж 3 жыл бұрын
Всегда использую EntityFrameworkCore как самую популярную ОRM или EntityFramework, но часто вижу требования на позицию джуна знания Dapper, NHibernate, хотелось бы узнать основные отличия м/у этими ORM, что они такое предоставляют что неспоcобен EntityFramework
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Первый критерий, который вы услышите - производительность. Но в версии EntityFramework Core 6 почти сравняется с Dapper. То есть, если все отключить у EntityFramework, он будет такой же как Dapper
@spacerecluse
@spacerecluse 3 жыл бұрын
@@SergeiCalabonga добавлю что в ноябре будет обновление. В обновлении со слов разрабов все фичи будут связанны с производительностью +60%
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Именно так я и сказал, или я что-то не пойму, что вы хотели сказать-то?
@spacerecluse
@spacerecluse 3 жыл бұрын
@@SergeiCalabonga ох, читал в дороге с мобильного, + привычка скорочтения по диагонали подвела
@DInfinity3
@DInfinity3 2 жыл бұрын
Огонь!
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
🕺
@dannycyberwalker
@dannycyberwalker 3 жыл бұрын
Получается валидация это не бизнес бизнес логика?
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Судя по всему, не такой уж и бизнес-процесс. Правильнее сказать, валидация бывает разной. И валидация ввода данных - не бизнес-процесс.
@dannycyberwalker
@dannycyberwalker 3 жыл бұрын
@@SergeiCalabonga Спасибо
@spacerecluse
@spacerecluse 3 жыл бұрын
отложенная загрузка. select не обязателен. можно так context.Blogs.Include(p => p.Posts).ToList()
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Select - это projection, причем тут отложенная загрузка?
@spacerecluse
@spacerecluse 3 жыл бұрын
@@SergeiCalabonga в видео, чтобы не было отложенной загрузки в цикле, вы использовали select, а можно было бы include
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Это примеры с сайта Microsoft, они как раз и говорят, что так делпть не надо.
@spacerecluse
@spacerecluse 3 жыл бұрын
@@SergeiCalabonga вы объяснить можете почему так делать не надо? var blogs = context.Blogs.Include(p => p.Posts).ToList() foreach(var blog in blogs) { foreach(var post in blogs.Posts) { Console.WriteLine(post.Name); } }};
@artursafiullin7008
@artursafiullin7008 3 жыл бұрын
Отличное видео, спасибо!
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Спасибо за комментарий. Я старался.
@StuiChannel
@StuiChannel 3 жыл бұрын
Как всегда на высоте) спасибо)
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Спасибо
@735476589
@735476589 Жыл бұрын
Все смешалось, люди, кони
@SergeiCalabonga
@SergeiCalabonga Жыл бұрын
Конюшня?
Микросервисы: Реализация
1:00:32
Sergei Calabonga
Рет қаралды 3,4 М.
Entity framework реализация патернов Relation.
25:06
Архитектор ПО. Александр Желнин
Рет қаралды 5 М.
Nastya and balloon challenge
00:23
Nastya
Рет қаралды 70 МЛН
Inside Out 2: ENVY & DISGUST STOLE JOY's DRINKS!!
00:32
AnythingAlexia
Рет қаралды 13 МЛН
How To Get Married:   #short
00:22
Jin and Hattie
Рет қаралды 24 МЛН
SHAPALAQ 6 серия / 3 часть #aminkavitaminka #aminak #aminokka #расулшоу
00:59
Аминка Витаминка
Рет қаралды 2,1 МЛН
Вопросы собеседования на C# программиста
21:04
Програмысли Влог
Рет қаралды 66 М.
Entity Framework Миграции. Лучшее для развития вашего продукта
16:01
Архитектор ПО. Александр Желнин
Рет қаралды 7 М.
ЧТО ТАКОЕ ENTITY FRAMEWORK?
20:21
АйтишныйДомосед
Рет қаралды 18 М.
C# Delegates Делегаты
18:14
codaza
Рет қаралды 87 М.
Марк Шевченко - Микросервисы на C#
1:02:10
Миграции в EntityFramework Core
27:50
Sergei Calabonga
Рет қаралды 4,4 М.
Nastya and balloon challenge
00:23
Nastya
Рет қаралды 70 МЛН