C# programming. Lesson 17. Entity Framework. Part 3

  Рет қаралды 24,433

Программирование - это просто

Программирование - это просто

Күн бұрын

Заключительная часть занятия по Entity Framework. Сохранение и обновление данных.
Ссылки на предыдущие уроки:
Урок 17. Entity Framework. Часть 2. • Уроки C#. Entity Frame...
Урок 16. Entity Framework. Часть 1. • Уроки C#. Entity Frame...
Урок 15. Деревья выражений. • Уроки C#. Деревья выра...
Урок 14. Reflection. • Уроки C#. Reflection
Урок 13. Введение в LINQ. • Уроки C#. Введение в LINQ
Урок 12. Лямбда-выражения. • Уроки C#. Лямбда-выраж...
Урок 11. Три кита. • Уроки C#. Три кита
Урок 10. Исключения. • Уроки C#. Исключения
Урок 9. Множества. • Уроки C#. Множества
Урок 8. Обобщения. • Уроки C#. Обобщения
Урок 7. Пример создания приложения. • Уроки C#. Пример созда...
Урок 6. Интерфейсы. • Уроки C#. Интерфейсы.
Урок 5. Запечатанные, статические и абстрактные классы. • Уроки C#. Запечатанные...
Урок 4. Наследование и полиморфизм. • Уроки C#. Наследование...
Урок 3. Делегаты и события. • Уроки C#. Делегаты и с...
Урок 2. Состав типа. • Уроки C#. Состав типа.
Урок 1. Типы данных. • Уроки C#. Типы данных.

Пікірлер: 27
@Zliun
@Zliun 5 жыл бұрын
Если бы Deffaze не бросил делать видеоуроки) Я бы уже стал сеньором Спасибо за чудесные уроки. Жду возвращения
@lesharper8751
@lesharper8751 4 жыл бұрын
Пишу аж из 2021 года. Наткнулся на твои видео и удивлен, как ты хорошо объясняешь любые темы и все сложное, кажется простым и понятным. Спасибо большое! Надеюсь спустя столько нет, еще увидеть видео от тебя
@BohdanUdovychenko
@BohdanUdovychenko 9 жыл бұрын
Большое спасибо, это самые лучшие уроки по Entity из всех что я видел.
@arkadiyshuvaev
@arkadiyshuvaev 8 жыл бұрын
Автор молодец, просмотрел три части - все очень интересно и продумано, рекомендую!
@ДжонКеннеди-к6й
@ДжонКеннеди-к6й 10 жыл бұрын
Спасибо за подробный рассказ обо всем, все по теме, все интересно!
@p12s
@p12s 7 жыл бұрын
Отличные уроки, автор хорош!
@kauchuk-22
@kauchuk-22 9 жыл бұрын
Большое спасибо за уроки!!!! Отличный материал!!
@dimashamsiev6250
@dimashamsiev6250 9 жыл бұрын
Все очень круто, Вы большой молодец! Спасибо за уроки
@miklepdchash1981
@miklepdchash1981 10 жыл бұрын
Всегда возникали проблемы при оценке производительности и выборе способа сохранения, что уж там хардкодил как мог(. Последовательный и интересный урок, больше бы таких.
@ivangaburov5641
@ivangaburov5641 10 жыл бұрын
А можно попросить, в качестве итога по Entity Frmaework, урок по созданию полноценного приложения с двумя-тремя формами с применением паттернов?
@konstantink1780
@konstantink1780 10 жыл бұрын
Спасибо! Узнал много полезного
@Warox42
@Warox42 9 жыл бұрын
миграций так и не нашел, но очень познавательно, спасибо
@TheZarbazan
@TheZarbazan 9 жыл бұрын
Спасибо большое за уроки. Держи подписку. Случайно видео уроки по orchard cms не планируются? Ооочень хотелось бы )
@michaelkut7711
@michaelkut7711 9 жыл бұрын
спасибо хорошое видео пособие
@seriga3
@seriga3 8 жыл бұрын
класс Customer: Зачем конструктор с “this.Orders = new HashSet()”? Почему именно ICollection и virtual? Выложите пожалуйста исходник.
@seriga3
@seriga3 8 жыл бұрын
professorweb.ru/my/entity-framework/6/level3/3_4.php "Навигационные свойства, которые должны обеспечивать отложенную загрузку, должны быть виртуальными (модификатор virtual)." Для "Include()" нужно "using Microsoft.Data.Entity;"
@sergepikovsky3385
@sergepikovsky3385 9 жыл бұрын
Гм...в общем проблема такого рода: ваш код (самый первый в этом уроке) ... TestDbContext context = new TestDbContext(); context.Configuration.LazyLoadingEnabled = true; //(вставил от безнадеги) Customer customer = context.Customers.Single(c => c.CustomerId == 3); ICollection orders = customer.Orders; ...ставил с остановом на 3-ей строке Customer customer =... (как и у вас) и смотрел под SQL Server Profiler (поставив Column Filter... -> AplicationName Like "EntityFramework" что бы не мешало ничего). В модели свойство Lazy Loading Enabled стоит в true. И у меня после выполнения ТОЛЬКО этой строки (Customer customer =...) срабатывали оба запроса (а у вас только один ибо Lazy Loading): SELECT TOP (2) [Extent1].[CustomerId] AS [CustomerId], [Extent1].[CustomerName] AS [CustomerName] FROM [dbo].[t_customer] AS [Extent1] WHERE 3 = [Extent1].[CustomerId] и: exec sp_executesql N'SELECT [Extent1].[OrderId] AS [OrderId], [Extent1].[CustomerId] AS [CustomerId], [Extent1].[CreateDate] AS [CreateDate] FROM [dbo].[t_order] AS [Extent1] WHERE [Extent1].[CustomerId] = @EntityKeyValue1',N'@EntityKeyValue1 int',@EntityKeyValue1=3 Заворот мозга усилился после того, как я нашел у Шевчука совместно с Рудем (ITVDN) в презентации к 3-му уроку (из 5-и, посвященных EF) абзац: "§ В отличие от отложенного выполнения запросов, возвращающих последовательность значений, запросы, возвращающие одноэлементное значение, выполняются немедленно. Примерами одноэлементных запросов являются Average, Count, First и Max. Они выполняются немедленно, потому что запрос должен создать последовательность, чтобы вычислить одноэлементный результат. ". До этого случая показания моего SQL Server Profiler-а совпадали с вашим. Прошу вас дать комментарий по поводу сказанного, плиз. VS2013.
@sergepikovsky3385
@sergepikovsky3385 9 жыл бұрын
+Serge Pikovsky и да, если строки... : Customer customer = context.Customers.Single(c => c.CustomerId == 3); ICollection orders = customer.Orders; ...поменять на что нибудь похожее, но не подразумевающее возврат единственного значения, типа... : IQueryable customers = context.Customers.Where(c => c.CustomerId == 3); foreach (Customer customer in customers) { foreach (Order order in customer.Orders) { Console.WriteLine("Даты заказов: {0}", order.CreateDate); } } ... то профайлер отрабатывает запросы похожим вашему примеру образом: Во внешнем foreach отработает: SELECT [Extent1].[CustomerId] AS [CustomerId], [Extent1].[CustomerName] AS [CustomerName] FROM [dbo].[t_customer] AS [Extent1] WHERE 3 = [Extent1].[CustomerId] Во внутреннем foreach отработает: exec sp_executesql N'SELECT [Extent1].[OrderId] AS [OrderId], [Extent1].[CustomerId] AS [CustomerId], [Extent1].[CreateDate] AS [CreateDate] FROM [dbo].[t_order] AS [Extent1] WHERE [Extent1].[CustomerId] = @EntityKeyValue1',N'@EntityKeyValue1 int',@EntityKeyValue1=3 Я не понимаю, почему у вас отработал подход Lazy Loading, мне кажется не должен был, т.к. возвращаемый методом расширения Single тип, скрываемый var, - не есть IQueryable, а он - просто Customer !!!! :-(
@sergepikovsky3385
@sergepikovsky3385 8 жыл бұрын
Тут есть кто-то? Канал не умер?
@denissredz721
@denissredz721 9 жыл бұрын
spasibo !
@alex13091988
@alex13091988 5 жыл бұрын
А у меня такие результаты: Entity Framework: 274 Entity Framework with NoTracking: 105 Entity Framework Query: 122 ADO.NET: 160 Привет из 2019... что изменилось? Почему без трекинга через Entity лучше, чем низкоуровневое ADO.NET? ps. Вынес подключение к БД за таймер, теперь ADO.NET: 46
@sp1ne2104
@sp1ne2104 5 жыл бұрын
использую Dapper вместо EF, работает быстро, как на ado.net
@miuira
@miuira 8 жыл бұрын
Столкнулась с ошибкой, какие есть решения? Не удалось обновить набор EntitySet "t_order_product", поскольку в нем имеется запрос DefiningQuery и отсутствует элемент в элементе для поддержки текущей операции.
@miuira
@miuira 8 жыл бұрын
Добавила первичный ключ, только так заработало.
@ТарасКрасниця
@ТарасКрасниця 10 жыл бұрын
Хотілося б урок по цьому Generic Unit of Work & (Extensible) Repositories Framework genericunitofworkandrepositories.codeplex.com/documentation Як правильно працювати з Unit of Work.
@deniskholodar4406
@deniskholodar4406 3 жыл бұрын
2021.
@СергейТерентьев-т4п
@СергейТерентьев-т4п 10 жыл бұрын
много воды и теории бд, а по теме очень мало. Поставил минус.
C# programming. Lesson 19. Multithreading. Part 1
28:27
Программирование - это просто
Рет қаралды 88 М.
C# programming. Lesson 21. Multithreading. Part 3
24:14
Программирование - это просто
Рет қаралды 19 М.
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
It works #beatbox #tiktok
00:34
BeatboxJCOP
Рет қаралды 41 МЛН
C# programming. Lesson 16. Entity Framework. Part 1
35:18
Программирование - это просто
Рет қаралды 93 М.
C# programming. Lesson 13. LINQ introducion
42:33
Программирование - это просто
Рет қаралды 69 М.
C# programming. Lesson 14. Reflection
27:14
Программирование - это просто
Рет қаралды 43 М.
Transformers (how LLMs work) explained visually | DL5
27:14
3Blue1Brown
Рет қаралды 4,8 МЛН
Вы НЕ умеете замечать ЗНАКИ и ПОДСКАЗКИ от жизни
20:54
МАРГУЛАН СЕЙСЕМБАЙ
Рет қаралды 325 М.
Структура файлов и каталогов в Linux
20:28
Aleksey Samoilov
Рет қаралды 442 М.