Category Archives: Entity Framework Core

Havit.Blazor stack podrobněji – záznam z WUG Zlín [Robert Haken, 28.2.2023]

Záznam z přednášky pro komunitní setkání WUG Zlín z 28. února 2023. Povídal jsem o uspořádání Havit.Blazor stacku (šablona https://github.com/havit/NewProjectTemplate-Blazor) a proč je uspořádaný, tak jak je.

Slides (PDF):

Havit.Blazor stack – záznam z WUG Days 2023.1

Záznam z přednášky pro konferenci WUG Days 2023.1 v Brně z 30. ledna 2023. Povídal jsem o uspořádání Havit.Blazor stacku (šablona https://github.com/havit/NewProjectTemplate-Blazor) a proč je uspořádaný, tak jak je.

Slides (PDF):

OrderBy(e => e.NullableNavigationProperty.SomeValue) v EF Core

Při code-reviews se opakovaně setkávám se snahou ošetřit null v OrderBy/Where a v podobných LINQ extension metodách při použití EF Core. Například

 .OrderBy(e => e.BossId.HasValue ? e.Boss.LastName : String.Empty)

Je to obvykle nadbytečné, ba dokonce nežádoucí.

LINQ provider výraz nevykonává, ale překládá do SQL, takže pohodlně funguje

.OrderBy(e => e.Boss.LastName)

přestože Boss může být NULL.

Možná takový zápis v C# tahá za oči, ale spíš bych se obával tu expression pro EF Core jakkoliv komplikovat, aby z toho nevznikl nějaký složitější dotaz než je potřeba.

Konkrétně krátká podoba vytvoří SQL klauzuli

ORDER BY [e].[LastName]

a SQL si s NULL pohodlně poradí, zatímco dlouhá podoba udělá

ORDER BY CASE
    WHEN [e].[Id] IS NOT NULL THEN [e].[LastName]
    ELSE N''''
END

…což obvykle nepotřebujete a v T-SQL by vás to nejspíš nikdy nenapadalo takhle řešit.

AIMEE – technologie na projektu [Vzdělávací okénko, 26.2.2020]

Záznam ze Vzdělávacího okénka HAVIT z 26. února 2020, kde Ondřej Václavek, Daniel Vršek a Pavel Kříž nechali nahlédnout do naší kuchyně a povídali o technických zajímavostech projektu AIMEE – Access & Identity Management aplikaci:

  • SignalR
  • Bulk Inserts v EF Core
  • Query Parameters
  • Castle Windsor resolvování pomocí generických parametrů
  • Front-end stack

Nahrávka je publikována na našem HAVIT YouTube Channelu.

EF Core & cachování [Jiří Kanda, HAVIT Vzdělávací okénko, 4.4.2019]

Záznam ze Vzdělávacího okénka HAVIT z 4. dubna 2019, kde Jiří Kanda povídal o naší implementaci cachování nad Entity Framework Core (cachujeme na vrstvě Repositories vs. UnitOfWork).

Novinky v C# 8.0, Visual Studio 2019 a .NET vNext – záznam, dema a slides [Robert Haken, ShowIT SK 2019]

Záznam z mého vystoupení pro ShowIT Bratislava ze 5. února 2019.

Slides a dema:

Dotčená témata:

  • C# 8.0
    • Indices and Ranges
    • Switch Expressions
    • Pattern Matching
    • Static Local Functions
    • Using Declarations
    • Nullable Reference Types
    • Async Streams
    • Target-typed New
    • Default Interface Methods
    • Null Coalescing Operator ??=
  • C# vNext
    • Records
    • Extension Everything
    • Native-Sized Number Types
  • Visual Studio 2019
    • IntelliCode
    • New UI – Startup, New Project, …
  • .NET Framework 4.8
  • .NET Core 2.2, 3.0
  • Entity Framework 2.2, 3.0
  • ASP.NET Core 2.2, 3.0

Nahrávka je publikována na našem HAVIT YouTube Channelu.

Entity Framework Core 5/5 – použití v HAVITu [Jiří Kanda, HAVIT Vzdělávací okénko 6.12.2018]

Záznam ze Vzdělávacího okénka HAVIT z 6. prosinci 2018, kde Jirka Kanda pokračoval v pátým dílem představování Entity Framework Core, tentokrát jak ho používáme v HAVITu:

  • patterns
  • Data Sources – abstrakce DbSet, testování repozitářů, queries
  • Entries – statické číselníky, enum tabulky
  • Repositories
  • Unit of Work
  • Data Loader – dočítání (ensure) dat v business-logice
  • cachování na EF Core

Nahrávka je publikována na našem HAVIT YouTube Channelu. Celou pětidílnou sérii najdete i v samostatném playlistu:

  1. Úvod, model
  2. Packages, modifikace dat
  3. Dotazování do DB
  4. Migrace dat, seedování
  5. Použití v HAVITu

Entity Framework Core 4/5 – Migrace, seedování [Jiří Kanda, HAVIT Vzdělávací okénko, 15.11.2018]

Záznam ze Vzdělávacího okénka HAVIT z 15. listopadu 2018, kde Jirka Kanda pokračoval v čtvrtým dílem představování Entity Framework Core, tentokrát:

  • Migrations,
  • Havit.Data.EntitiyFrameworkCore
  • Havit.Data.EntitiyFrameworkCore.Patterns – seedování dat

Nahrávka je publikována na našem HAVIT YouTube Channelu.

Entity Framework Core 3/5 -Dotazování do DB [Jiří Kanda, HAVIT Vzdělávací okénko 25.10.2018]

Záznam ze Vzdělávacího okénka HAVIT z 28. října 2018, kde Jirka Kanda pokračoval v třetím dílem představování Entity Framework Core, tentokrát:

  • Dotazování, Set
  • Projekce
  • Tracking, Change Tracker
  • Client Evaluation
  • Eager Loading, Explicit Loading
  • Lazy Loading
  • RawSql
  • Query Types
  • Query Filters

Nahrávka je publikována na našem HAVIT YouTube Channelu.

Entity Framework Core 2/5 – Packages, modifikace [Jiří Kanda, HAVIT Vzdělávací okénko, 4.10.2018]

Záznam ze Vzdělávacího okénka HAVIT z 4. října 2018, kde Jirka Kanda pokračoval v představování Entity Framework Core, tentokrát o jeho NuGet packages a modifikaci dat.

Nahrávka je publikována na našem HAVIT YouTube Channelu.