Start Debugging

dotnet-11

320 件 · ページ1/32

EF Core で自己参照の多対多リレーションシップ (フォロワー/フォロー中) を構成する方法

EF Core 11 で単一の User エンティティにフォロワーとフォロー中をモデル化します。規約が何を生成するか、SQL Server が結合テーブルの外部キーの片方を黙って ClientCascade に変える理由、タイムスタンプ付きの明示的な Follow 結合エンティティのマッピング方法、そしてエラー 547 や 1785 を出さずにユーザーを削除する方法を解説します。

ASP.NET Core 組み込み OpenAPI ドキュメントでコントローラーアクションのレスポンスを null 許容にする方法

Microsoft.AspNetCore.OpenApi がレスポンスを null 許容として出力するのは、アクションが素の T? を返す場合だけです(.NET 10 では Task<T?> でも出力されません)。ActionResult<T?> と IActionResult では、.NET 10 でも .NET 11 RC2 でもこの注釈が失われます。その理由、動作確認済みの operation transformer による修正方法、そして MVC のフォーマッターも変更しない限り仕様が実態と食い違う 204 No Content の落とし穴を解説します。

.NET でインドのラーク/クロール方式の桁区切りで数値をフォーマットする方法 (NumberGroupSizes)

en-IN カルチャを使うか NumberFormatInfo.NumberGroupSizes を [3, 2] に設定すると、C# で 123,456,789 ではなく 12,34,56,789 と出力できます。.NET 10 と .NET 11 RC1 で検証し、配列の仕組み、CurrencyGroupSizes が別である理由、欧米式の桁区切りが黙って出力されるインバリアントグローバリゼーションの落とし穴、ラーク/クロールの単位表記ヘルパーを解説します。

ASP.NET Core で MapIdentityApi がマップする個別のエンドポイントを削除または非表示にする方法

MapIdentityApi<TUser>() は 10 個のエンドポイントをマップしますが、1 つだけ除外するスイッチはありません。.NET 11 で実測した 4 つの対処法 (OpenAPI から隠す、404 を返す、シャドウする、ルーティングから完全に削除する) と、登録を 500 エラーにする /confirmEmail の落とし穴を紹介します。

修正: Windows で書き込み中のファイルに対して FileInfo.Length が古いサイズを返す

FileInfo はサイズをキャッシュし、列挙では NTFS が遅延更新するディレクトリエントリを読み、さらに書き込み側が自前のバッファーにバイトを保持していることもあります。Refresh() を呼ぶか、より確実には共有ハンドルから RandomAccess.GetLength で長さを読み取ってください。

.NET の正規表現でバランシンググループを使って、ネストした括弧とタグの対応を一致させる方法

バランシンググループ (?<name>) と (?<-name>) を使うと、.NET の正規表現のキャプチャグループをスタックとして扱えるため、1 つのパターンで任意の深さにネストした括弧や <div> タグに一致させられます。完全なパターン、スタックの仕組み、(?<inner-open>) による内側の内容のキャプチャ、そして .NET 11 RC1 で確認した注意点 (空スタックのチェック、壊滅的なバックトラック、NonBacktracking、複数種類の括弧の混在) を解説します。
次へ