Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
.NET 10のEntity Framework Coreの新機能
Search
tkym
November 21, 2025
Technology
1k
0
Share
.NET 10のEntity Framework Coreの新機能
tkym
November 21, 2025
More Decks by tkym
See All by tkym
今さら聞けないCancellationToken
htkym
0
110
GitHub Copilot CLIのいいところ
htkym
0
6
GitHubCopilotCLIをはじめよう.pdf
htkym
0
340
RoslynAnalyzerをつかってみよう
htkym
0
750
SourceGeneratorのマーカー属性問題について
htkym
0
250
SourceGeneratorのススメ
htkym
0
880
Entity Framework Core におけるIN句クエリ最適化について
htkym
0
210
.NET 10のBlazorの期待の新機能
htkym
0
1.3k
Azure Static Web Appsでユニバーサルリンク
htkym
0
52
Other Decks in Technology
See All in Technology
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.7k
AI飲み会幹事エージェントを作っただけなのに
ykimi
0
240
Directions Asia 2026 | Beyond Buildable AI Agents: Let’s Visualize Partner Value in the AI Era
ryoheig0405
0
130
最新技術を"今は選ばない"という技術選定
leveragestech
PRO
0
320
TSKaigi 2026 - 型プラグインシステムの実装に使われるテクニック
teamlab
PRO
0
110
R&D 祭 2024 UE5で絵コンテ・作画の制作支援ツールをつくる話
olmdrd
PRO
0
200
Redmine次期バージョン7.0の注目新機能解説 — UI/UX強化と連携強化を中心に
vividtone
1
210
実例から学ぶ GuardDuty(SSH BruteForce)調査の全体フローと勘所【SecurityJAWS】
cscengineer
PRO
0
160
アプリブロック機能のつくりかたと、AIとHTMLの不合理な相性の良さについて
kumamotone
1
260
AWS運用におけるAI Agent活用術 / JAWS-UG 神戸 #11 LT大会
genda
1
310
Purview 勉強会報告 Microsoft Purview 入門しようとしてみた
masakichixo
1
460
20260515 ログイン機能だけではないアカウント管理を全体で考える~サービス設計者向け~
oidfj
1
870
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
247
13k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
930
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
300
How to make the Groovebox
asonas
2
2.2k
Designing for Timeless Needs
cassininazir
1
220
[SF Ruby Conf 2025] Rails X
palkan
2
1k
Embracing the Ebb and Flow
colly
88
5k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Prompt Engineering for Job Search
mfonobong
0
310
Are puppies a ranking factor?
jonoalderson
1
3.4k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
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