Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
.NET 10のEntity Framework Coreの新機能
Search
tkym
November 21, 2025
Technology
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
.NET 10のEntity Framework Coreの新機能
tkym
November 21, 2025
More Decks by tkym
See All by tkym
すこし踏み込む CancellationToken
htkym
2
670
AIの中の人になってみる
htkym
0
180
今さら聞けない .NET CLI
htkym
0
240
GitHubCopilotCLIのスラッシュコマンドを自作してみる
htkym
0
160
今さら聞けないCancellationToken
htkym
0
310
GitHub Copilot CLIのいいところ
htkym
2
1.5k
GitHubCopilotCLIをはじめよう.pdf
htkym
0
420
RoslynAnalyzerをつかってみよう
htkym
0
1.3k
SourceGeneratorのマーカー属性問題について
htkym
0
300
Other Decks in Technology
See All in Technology
事業課題から技術的負債に向き合う
sansantech
PRO
2
2.1k
SREへの勘違いに気づいた後の話
tomodakengo
0
120
AIに賢く動いてもらうためのコンテキスト〜Snowflake女子会 vol.8
snowwmn0824
0
130
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
290
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
160
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
5
1.8k
リアーキテクチャ後の障害ゼロを目指したShadow Testingの取り組み
nihonbuson
PRO
1
160
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
620
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
260
Why Agent Cost Needs Observability
nttcom
0
100
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
370
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Code Review Best Practice
trishagee
74
20k
We Have a Design System, Now What?
morganepeng
55
8.3k
RailsConf 2023
tenderlove
30
1.6k
A designer walks into a library…
pauljervisheath
211
25k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
530
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
The World Runs on Bad Software
bkeepers
PRO
72
12k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Transcript
.NET 10の Entity Framework Coreの 新機能 FutureOne株式会社 高山博司
高山博司 ・ FutureOne株式会社 ・ C#/.NET/Blazor tkym @88poipoi88
目次 ・ .NET 10 の Entity Framework Core の新機能 ・
Entity Framework Core について ・ Entity Framework Core の新機能
Entity Framework Core について
O/Rマッパー? • Object-Relational Mapper • 「オブジェクト」 と 「リレーショナルDB」 の マッピングをおこなう仕組み
• オブジェクト操作からSQLへ • テーブルデータからオブジェクト StudentId Name Age 001 名前1 20 002 名前2 30 003 名前3 40
Entity Framework Core • Microsoftによって開発・提供されている,.NET向けのO/Rマッパー • オープンソース: https://github.com/dotnet/efcore • クロスプラットフォーム:
.NET Coreと完全に統合,クロスプラットフォームのアプリ開発をサポート • 高性能,軽量: 従来のEFに比べてパフォーマンスが大幅に改善
Entity Framework Core • エンティティ (Entity): データベースの「テーブル」構造を C#のコードで表現したもの. ・ DbContext
(データベースコンテキスト): データベースとの「対話セッション」全体を管理する. ・ データベースへの接続 ・ トランザクションの管理 ・ エンティティの変更追跡 ・ DbSet (エンティティセット): DbContextクラスの内部に定義されるプロパティ 特定のエンティティ(つまり特定のテーブル)への 操作(追加,検索,削除など)を行うための「窓口」.
Entity Framework Core の新機能
新機能一覧 What's New in EF Core 10 | Microsoft Learn
IN句クエリの最適化 ・ パラメータ化されたコレクションを含むクエリ問題を解決 ・ 長年の課題だった
IN句クエリの最適化 ・ .NET 7以前 → インライン定数 プランキャッシュ汚染 毎回SQLが変わるので,DBのクエリプランのキャッシュが使えない 都度都度プランを作成し,キャッシュが使い捨てプランで溢れる →
パフォーマンスの低下
IN句クエリの最適化 ・ .NET 8 → JSON配列パラメータ ◎ SQLが変わらない!プランキャッシュ汚染回避! カーディナリティ推定の失敗 プランナはパラメータの数がわからない...
非効率な実行プランを選択することも → パフォーマンス低下
IN句クエリの最適化 ・ .NET 9 → TranslateParameterizedCollectionsToConstantsオプション ◎ オンにすると,インライン定数モードになる 根本的な解決ではなく,開発者が選ぶことに...
IN句クエリの最適化 ・ .NET 10 → パディング付きスカラーパラメータ ◎ 値が変わっても,SQLが変わらない! ◎ パラメータを水増し(パディング)
→ 何個か余分なパラメータを足してSQLを生成させる
IN句クエリの最適化 ・ .NET 10 どうするかもオプションで選べる ・ ParameterTranslationMode.Scalar: パディング付きスカラーパラメータ ・ ParameterTranslationMode.Json:
JSON配列パラメータ ・ ParameterTranslationMode.Constant: インライン定数
IN句クエリの最適化 ・ .NET 10 クエリ毎でも選べる ・ パディング付きスカラーパラメータ ・ インライン定数
ネイティブJSONサポート Azure SQL Database および SQL Server 2025 ・ ネイティブJasn型をサポート
ネイティブJSONサポート Azure SQL Database および SQL Server 2025 ・ ネイティブJasn型をサポート
→ パフォーマンスとストレージ効率が 向上.
Complex Typesによるパフォーマンスモデリング ・ .NET 8で導入されたComplexTypesがより良くなった. → Value Objectのようなキーを持たない構造化されたデータのマッピングには ComplexTypesが推奨に
Complex Typesによるパフォーマンスモデリング テーブル分割 Json
Complex Typesによるパフォーマンスモデリング ・ .NET 7 以前: Owned Types → 内部的にはEntity型
扱いづらい・・・
Complex Typesによるパフォーマンスモデリング ・ .NET 7 以前: Owned Types → ExecuteUpdateが使えない
Error
Complex Typesによるパフォーマンスモデリング ・ .NET 8/9: Complex Types ・ キー値によって識別されたり、追跡されたりしない。 ・
エンティティ型の一部としてのみ定義される(DbSet<T>を持てない)。 ・ インスタンスを複数のプロパティで共有できる。 クリア!
Complex Typesによるパフォーマンスモデリング ・ ExecuteUpdateのアップデート .NET 9 .NET 10
Complex Typesによるパフォーマンスモデリング ・ ExecuteUpdateのアップデート JSONカラムも
LeftJoin と RightJoin 演算子の導入 ・ .NET 8/9以前 ・ SQLの LEFT
JOIN/RIGHT JOIN (外部結合) に相当するものがない. ・ GroupJoin、DefaultIfEmpty、SelectManyを組み合わせておこなっていた.
LeftJoin と RightJoin 演算子の導入 ・ .NET 10 ・ LeftJoin と
RightJoinが導入 (メソッド構文のみ).
ベクトル検索サポート ・ Azure SQL Database と SQL Server 2025
名前つきQueryフィルター ・ .NET 9以前 ・ 一つしか定義できなかった ・ Ignoreは全部外れる
名前つきQueryフィルター ・ .NET 10 ・ 複数定義可能 ・ 名前指定で外せる
SQLパラメータ名の 可読性向上 ・ 読みやすくなった
分割クエリの順序の一貫性の向上 分割クエリ: 関連データを複数の独立したSQLクエリで 取得する機能
分割クエリの順序の一貫性の向上 ・ NET 9 ・サブクエリのOrder by に [Id]がない → 返すデータの順序が
変わる可能性
分割クエリの順序の一貫性の向上 ・ NET 10 ・サブクエリのOrder by に [Id]がある → 順序の一貫性を
まとめ What's New in EF Core 10 | Microsoft Learn