2026-05-26 ef-coredotnet-11sql-server EF Core 11 Preview 4: テンポラルテーブルの期間列がついに本物のプロパティになれる EF Core 11 Preview 4 で SQL Server テンポラルテーブルに対する長年の shadow プロパティ制約が撤廃されました。PeriodStart と PeriodEnd を通常の CLR プロパティとして宣言し、強く型付けされた HasPeriodStart と HasPeriodEnd のラムダで設定できます。
2026-05-23 comparisonef-coredapper EF Core のコンパイル済みクエリ vs 生 SQL vs Dapper: 読み取りパスではどれが勝つか? .NET 11 の読み取り中心のパスでは、AsNoTracking を付けた素の EF Core は Dapper の ~5% 以内に収まります。コンパイル済みクエリはプロファイル済みの単一行ホットパスで使い、Dapper は最小のレイテンシや LINQ で表現できない SQL のためだけに使いましょう。
2026-05-21 comparisoncsharplinq C# における IEnumerable vs IAsyncEnumerable vs IQueryable:メソッドは何を返すべきか 3 つのシーケンスインターフェース、3 つの実行モデル。データベースがクエリを変換できる場合は IQueryable を、プロデューサーが非同期でストリーミングしたい場合は IAsyncEnumerable を、それ以外のメモリ内のものには IEnumerable を使用します。
2026-05-20 comparisonef-coredapper EF Core 11 vs Dapper の一括挿入: リアルなベンチマーク .NET 11 での一括挿入では、EF Core も Dapper も勝ちません。SqlBulkCopy が勝ちます。これはそのベンチマークと理由、そして各ツールにふさわしい場所です。
2026-05-14 errorscsharpdotnet Fix: A possible object cycle was detected System.Text.Json は逆参照を持つグラフのシリアライズを拒否します。ReferenceHandler.IgnoreCycles を設定するか、DTO に射影するか、逆向きポインタに [JsonIgnore] を付けてください。Preserve は最終手段です。
2026-05-14 errorscsharpdotnet 修正: EF Core マイグレーション中の SqlException: Timeout expired マイグレーションはランタイムの CommandTimeout ではなくデザインタイムの DbContext を使用します。UseSqlServer(o => o.CommandTimeout(...))、接続文字列の Command Timeout、または Migrate() の前の Database.SetCommandTimeout でタイムアウトを設定してください。
2026-05-11 errorscsharpdotnet Fix: dotnet ef migrations add が 'Unable to create an object of type DbContext' で失敗する EF Core の設計時ツールが DbContext のインスタンスを作成できませんでした。WebApplication.CreateBuilder で host を公開するか、正しい startup project を指定するか、IDesignTimeDbContextFactory を実装してください。
2026-05-07 errorscsharpdotnet 修正: The instance of entity type cannot be tracked because another instance with the same key value is already being tracked EF Core 11 は、1 つの DbContext 内で 2 つのオブジェクトが主キーを共有するとこの例外をスローします。古い方をデタッチするか、その場で更新してください。読み取り側の AsNoTracking で衝突を防げます。
2026-05-07 errorscsharpdotnet 修正: A second operation was started on this context instance before a previous operation completed EF Core は同じ DbContext 上で 2 つの await が並行に実行されるとこの例外をスローします。各呼び出しを順次 await するか、IDbContextFactory で並行する作業単位ごとに新しい DbContext を取得してください。
2026-05-05 errorscsharpdotnet 修正: System.InvalidOperationException: No connection string named 'DefaultConnection' could be found .NET 11 で GetConnectionString が null を返す場合、appsettings.json にキーがない、ビルド出力にコピーされていない、または間違った環境ファイルが選ばれているかのいずれかです。3 つのチェックで 95% のケースが解決します。