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

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

Sergei Calabonga

Sergei Calabonga

Күн бұрын

Пікірлер: 55
@Денис-в5д5ь
@Денис-в5д5ь 3 жыл бұрын
Только начал смотреть, но коммент все равно нужен для продвижения ))
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Спасибо! Очень нужен!
@OlegMongol18675
@OlegMongol18675 3 жыл бұрын
Спасибо! Много хороших видео выходит у Вас на канале)
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Спасибо, приятно слышать
@alekseev74
@alekseev74 2 жыл бұрын
Уже к .NET 5 EF стал достаточно умен. Можно тонко настроить LINQ-запросы, ChangeTracker (когда следить\не следить), транзакции и т.д. В целом использую EF в 90% случаев, ибо быстро и удобно.
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
Согласен
@filoffs
@filoffs 3 жыл бұрын
Спасибо за видео)) как всегда, интересно и полезно)
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Спасибо за высокую оценку.
@alexanderraf5553
@alexanderraf5553 3 жыл бұрын
Все неплохо, но забыли еще о главной вещи рассказать. О IQueryable и IEnumerable. Что например если есть фильтрация 'Where' и привести в .ToList() (Ienumerable) сразу, то под капотом выберутся все записи в память, а только потом фильтрация пойдет.
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Хорошее замечание, правильное. Спасибо.
@valeriik9135
@valeriik9135 3 жыл бұрын
Спасибо, Сергей! было очень структурированно и полезно. хотелось бы посмотреть про фишки EF 6
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
С EntityFramework 6 всё очень похоже, хотя есть некоторые нюансы.
@LehusWV
@LehusWV 3 жыл бұрын
Отлично! Можно ещё видос с примерами запросов, чтобы с несколькими таблицами и закрученными условиями.
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Можно как практическое занятие если поделитесь реальным проектом, чтобы было приближено к реальности.
@vasilyh4588
@vasilyh4588 16 күн бұрын
Не согласен с вердиктом "против", что это "ещё одна прослойка". Просто потому, что - эта прослойка в ЛЮБОМ СЛУЧАЕ появится. Чтобы оперировать данными на уровне приложения - надо как то данные из БД превратить в классы, объекты и т.д. А будет ли это череp EF или какой-то другой враппер - разница объективно невелика. В конце то концов тот же DataReader - "банально и неудобно". Опять же BigData - что не так с ними? Ну как-то прийдётся с ними общаться и опять же лопатить - почему не через EF? Делаем Paging output, задействум пул обработанных данных, потоки и прочие весёлые вещи.
@Бот5329-и5г
@Бот5329-и5г 2 жыл бұрын
Круто, так много полезной инфы для нубаса
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
Добро пожаловать на канал! :)
@Kulibins1
@Kulibins1 3 жыл бұрын
Привет. пару «замечаний» индексы ускоряют выборку множества где этот индекс применим. Инмемори не всегда на 100% = тому что произойдет на реальной бд, особенно, если будет бд не поддерживающая этот режим, например тот же postgresql. И в начале ролика было сказано про альтернативы, и я похоже не правильно понял, потому что подумал будет еще сравнение с ними, их плюсы и минусы. И для новичков entity делает миграции - много раз видел как бд ломают самописными запросами на обновление, а тут меньше человеческого фактора ( знаю что в ролике упоминалось, но очень вскользь)
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
1. InMemory вообще не привящана к БД 2. Про миграции кратко - в кривых руках и калькулятор зависает. 😄
@StuiChannel
@StuiChannel 3 жыл бұрын
Как всегда на высоте) спасибо)
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Спасибо
@DInfinity3
@DInfinity3 3 жыл бұрын
Огонь!
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
🕺
@dns_kr
@dns_kr Жыл бұрын
Здраствуйте. Очевидно что лучше сохранять список объектов в таблицу за один раз, чем 100 раз добавлять по одному. У меня есть транзакции которые приходят по времени хаотично. Как мне лучше всего сделать их сохранение? Я думаю лучше использовать промежуточное хранилище, чтобы всём скопом сохранять в бд. Пытался сделать через Apache Kafka, но сообщения там приходят по одному вместо группы. Есть ли у Вас мысли как лучше?
@SergeiCalabonga
@SergeiCalabonga Жыл бұрын
Я бы использовал MongoDb, если бы возникла подобная ситуация. Отдельно - накопление, отдельно - сохранение в БД.
@dns_kr
@dns_kr Жыл бұрын
@@SergeiCalabonga спасибо
@artursafiullin7008
@artursafiullin7008 3 жыл бұрын
Отличное видео, спасибо!
@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 ох, читал в дороге с мобильного, + привычка скорочтения по диагонали подвела
@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); } }};
@dannycyberwalker
@dannycyberwalker 3 жыл бұрын
Получается валидация это не бизнес бизнес логика?
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Судя по всему, не такой уж и бизнес-процесс. Правильнее сказать, валидация бывает разной. И валидация ввода данных - не бизнес-процесс.
@dannycyberwalker
@dannycyberwalker 3 жыл бұрын
@@SergeiCalabonga Спасибо
@mt89vein
@mt89vein 10 ай бұрын
"lazy loading плохо так как если вы начинаете сериализовать объекты так все грузится" просто не сериализуйте никогда модели БД, они не для этого, используйте DTO
@SergeiCalabonga
@SergeiCalabonga 10 ай бұрын
Да, это тоже вариант.
@spacerecluse
@spacerecluse 3 жыл бұрын
context.Configuration.AutoDetectChangesEnabled = false;
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
@735476589
@735476589 Жыл бұрын
Все смешалось, люди, кони
@SergeiCalabonga
@SergeiCalabonga Жыл бұрын
Конюшня?
Микросервисы: Реализация
1:00:32
Sergei Calabonga
Рет қаралды 3,4 М.
Working With Database Transactions In EF Core
14:11
Milan Jovanović
Рет қаралды 22 М.
Чистка воды совком от денег
00:32
FD Vasya
Рет қаралды 2,2 МЛН
Why no RONALDO?! 🤔⚽️
00:28
Celine Dept
Рет қаралды 83 МЛН
Почему я не использую Entity Framework
30:19
Програмысли Влог
Рет қаралды 10 М.
ENTITY FRAMEWORK ПРОСТЫМИ СЛОВАМИ
13:03
IRON PROGRAMMER
Рет қаралды 3,5 М.
EF Core Performance Optimization Challenge | 233x FASTER
14:42
Milan Jovanović
Рет қаралды 69 М.
Владимир Хориков - Domain-driven design: Cамое важное
1:13:59
DotNext — конференция для .NET‑разработчиков
Рет қаралды 56 М.
Марк Шевченко - Микросервисы на C#
1:02:10
Entity framework реализация патернов Relation.
25:06
Архитектор ПО. Александр Желнин
Рет қаралды 5 М.
Entity Framework Миграции. Лучшее для развития вашего продукта
16:01
Архитектор ПО. Александр Желнин
Рет қаралды 7 М.
Чистка воды совком от денег
00:32
FD Vasya
Рет қаралды 2,2 МЛН