log 2019/10/17

Don't re-use DefaultHttpContext if IHttpContextAccessor is in use (#1… · aspnet/AspNetCore@16be9a2 · GitHub

以下の issue の fix
IHttpContextAccessor cannot be used reliably in some scenarios · Issue #14975 · aspnet/AspNetCore · GitHub

IHttpContextAccessor を async 実行されるインスタンスに渡した場合に、リクエストが終了した後にも関わらず、直前のリクエストの HttpContext が取得できてしまう。

DefaultHttpContextFactory には Dispose があり、そこで HttpContextnull にしているが、HostingApplicationDisposeContext で受け取った context 内の HttpContextnull にするようにしている。

この辺の関係は読み込めていないが、対処としてはこんな感じらしい。とはいえ、 IHttpContextAccessor から必要なものだけ取って渡すのがいいって感じなんだろうな。

Best practice の Do not store IHttpContextAccessor.HttpContext in a field 以降
ASP.NET Core Performance Best Practices | Microsoft Docs


Fix Migration Batching When Seed Data Has Non-Writable Columns (I.E. … · aspnet/EntityFrameworkCore@afd6ca6 · GitHub

Seed Data を migration で突っ込む時の修正。 Non-writable な column を除外している。以下の去年の PR の追加的な感じ。
Seed Data: Exclude concurrency token from Data Operations by smitpatel · Pull Request #13510 · aspnet/EntityFrameworkCore · GitHub

テストを見ていて興味深かったのが、 FakeProvider namespace 配下。
https://github.com/aspnet/EntityFrameworkCore/tree/afd6ca6a4602e85e973a4dd84a374e1394bd9852/test/EFCore.Relational.Tests/TestUtilities/FakeProvider

地味に便利そうなのだが、別途利用できるように切り出されている感じはしない。