на пятой минуте, при объявлении свойства Name, вы добавляете в конце null!, и говорите, что свойство не может быть null. ! - это же оператор null-forgiving,! - оператор (допускающий значение NULL) (справочник по C#). Наткнулся на такое сообщение - И вот как раз восклицательный знак после null -- это т.н. null-forgiving оператор, который позволяет указать что значение null допустимо. Можете немного разжевать, запутался =) Или , так как string ссылочный тип, то значение null недопустимо, именно значение
@SergeiCalabonga3 ай бұрын
Полагаю, что компилятор CSharp поможет вам расставить точки над "ё". Попробуйте всё на практике. Станет понятнее.
@glorglorsky79873 ай бұрын
@@SergeiCalabonga так вот хотелось, что бы подтолкнули в нужное русло, не с кем пообсуждать, что окончательно расставить все точки над "ё".
@SergeiCalabonga3 ай бұрын
@@glorglorsky7987 Если кратко, то ... вы уже использовали (!) раньше в качестве оператора "not". Однако, начиная с C# 8.0 и его новой функции "nullable-reference-types", оператор получил второе значение. Его можно использовать для типа для управления допустимостью значений NULL, тогда он называется "Оператор прощения значений null". learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-forgiving github.com/dotnet/csharplang/blob/main/proposals/csharp-8.0/nullable-reference-types-specification.md
@Денис-д1у2д3 ай бұрын
Сергей, а где на гитхаб ваш проект UnitOfWork? Раньше был, а сейчас не могу найти.
@SergeiCalabonga3 ай бұрын
@@Денис-д1у2д всё на месте, ничего не прятал github.com/Calabonga/UnitOfWork
@Денис-д1у2д3 ай бұрын
@@SergeiCalabonga спасибо! Не через поиск, не так не мог найти.
@vladhr40836 ай бұрын
есть интересная библиотека Bogus для сидирования данных. особо может быть хороша в связке с ef
@74Photon7 ай бұрын
Вы упомянули, что есть видео про Definition, а ссылки на него не указали. Можно добавить ее в описание под видео?
Видео длинное, хотя бы обьяснили тогда, что такое паттерн Repository и что за паттерн UnitOfWork, и как эти два паттерна между собой сочитаются. А то взяли и просто подключили свои библиотеки.
@SergeiCalabonga7 ай бұрын
Так если "просто подключили", то что объяснять? Да и а начале видео, я так и сказал, что "покажу, как я это делаю", а не "расскажу про основные паттерны работы DAL, про которые разработчик должен знать и без меня, не говоря уже, что в интернете полно информации". 🙂
@ziegimondvishneuski33177 ай бұрын
Repository - это обстракция, для обеспечения гибкости. Сегодня вы работаете с Posgress, завтра с MSSql, и для облегчения перехода от одного к другому, делают такую вот прослойку. UnitOfWork обеспечивает целостность сохранения данных в разрезе Transaction
@ВладимирДолгуев7 ай бұрын
А почему при сохранении в БД используется SpecifyKind? Он же не преобразует дату, а только меняет Kind. Если дата была Local, то значение не поменяется. Не логичнее использовать ToUniversalTime?
@SergeiCalabonga7 ай бұрын
Я пробовал, у меня получилось на тот момент. Попробуйте. Очень интересно, получится или нет.
@ВладимирДолгуев7 ай бұрын
@@SergeiCalabonga потыкал разные варианты на текущем проекте и получилось следующее. При использовании LinqDynamic для генерации запросов в БД обязательно использовать ToUniversalTime. Иначе сначала либа конвертнет в Local, а затем мы проставим UTC. И в БД появится гап на оффсет даты при сравнениях и фильтрации. А вот если без LinqDynamic работать, то разницы можно сказать и нету
@SergeiCalabonga7 ай бұрын
О! Это интересная информация. Приму к сведению! Спасибо огромное!
@DENDYTWOO7 ай бұрын
а что за расширение, которое показывает какие сущности являются таблицами в бд?