『アオアシ(12)』を読んだ

12巻から、舞台はいよいよA チームに。 葦人は技術的には全然追いついていないけど、持ち前の視野の広さを活かして練習に食らいついていく展開は熱い。

あと、葦人・花・杏里の関係もこれからどうなるのか気になるが、ここに来て橘姉の都が参戦したりするんだろうか。さすがに無いか。

次巻は試合に突入するみたいだし、葦人に活躍の場はあるのか楽しみ。

『からかい上手の(元)高木さん(2)』を読んだ

西片くんと高木さんが結婚した未来の話だからか、 (元)高木さんのからかいが本編よりもむず痒く感じる。 からかいの内容はそこまで違いはないのに、二人の関係性が変わっただけで、 こうも直視づらさが増すとは。

あと、表示がからかい上手の高木さんと同じ構図なのがニクい。 相手が西片くんじゃなくて、娘のちーに変わってるけど。 もはやこれしかない、という表紙で上手い。

『からかい上手の高木さん(8)』を読んだ

8巻はバレンタイン回が収録されていて、時期にちゃんと合わせてあるなという印象。それにしても、周囲は高木さんが西片君にチョコをあげるものだと信じて疑っていないな。公認カップル状態。まだ付き合ってはいないけど。

最近の高木さんは、正解を2つ用意していたり、ヒントを出してあげたりと、西片くんが勝てる可能性をごく僅かに与えてあげている気がする。まぁ、西片くんが気付かなかったり、選ばなかったりしそうな絶妙な与え具合で、結局西片くんが勝てないのはもうお約束。

Entity Framework Plus を使ってタイプセーフに一括更新を行う

Entity Framework Core を使っていて、 エンティティをまとめて更新したい場面は結構あるが、 タイプセーフかつ効率的に更新する手段は、 今のところ標準で提供されていない。

ExecuteSqlCommand を使って直接 SQL を発行すればいいんだけど、 テストではInMemoryプロバイダーを使用しているので、 一括更新だけ違うやり方でテストしなければいけなくなるのが面倒。

そこで Entity Framework Plus を使ってみることにした。 Entity Framework と Entity Framework Core の機能を拡張できるライブラリ。

entityframework-plus.net

Entity Framework Core 用のパッケージを使う。

www.nuget.org

IQueryable に拡張メソッドが追加されるので、 非同期に一括で更新したい場合は UpdateAsync を使えばいい。

var publishedAt = DateTimeOffset.UtcNow;

var query = from e in context.Entries
            join b in context.Blogs on e.BlogId equals b.Id
            where e.TenantId == tenantId
            where b.UserId == userId
            where e.IsDraft
            select e;

await query.UpdateAsync(e => new Entry()
{
    IsDraft = false,
    PublishedAt = publishedAt,
});

普通に使うぶんにはこれでOK。 ただ注意点があって、テストで InMemory プロバイダーを使っていると

UpdateAsync results in Unable to cast object of type 'Microsoft.EntityFrameworkCore.Query.Internal.InMemoryQueryContextFactory'

という例外が発生してしまう。 その場合は

BatchUpdateManager.InMemoryDbContextFactory = () => new ApplicationDbContext(options);

という風に、Entity Framework Plus に DbContext を取得するためのデリゲートを登録しておくことで回避可能。

中華そばつけ麺 永福

天神南駅近くにある『中華そばつけ麺 永福』に行ってみた。 ここは中華そばの店なんだけど、同じく中華そばの『郷家』の真向かいに出店していて、 かなり挑戦的。長住から移転してきたらしい。なぜこの場所を選んだんだ…。

注文したのは中華そば。 鶏・豚・魚介のハイブリッドスープは、濃いめでパンチが効いていた。 これが東京風か。 ツルッとした中太麺も美味だった。 替え玉しておけばよかったな。

関連ランキング:ラーメン | 天神南駅西鉄福岡駅(天神)渡辺通駅

『からかい上手の(元)高木さん』を読んだ

からかい上手の高木さん』のスピンオフ。西片君と、西片君と結婚した(元)高木さんと、娘のちーちゃんの日常のお話。 本編で西片君と高木さんが結婚したと思われるシーンはあったので、二人が結婚するのは正史と言える。

ちーちゃんの性格は明らかに父親似だな。そんなちーちゃんが(元)高木さんと勝負するわけだが、父親似の娘は(元)高木さんには勝てない。あと、大人になっても西片君は勝てないようで、変わってなくて一安心。

(元)高木さんとちーちゃんがタッグを組むこともあれば、西片君とちーちゃんが組むこともあり、本編とはまた違った形の勝負が見れて、これはこれで面白いと思う。

Xamarin.iOS でキーチェーンを有効にする

Xamarin.iOS でアプリを作っていて、キーチェーンを使いたくなったときにいつも嵌るので、有効化の方法をメモしておく。

Visual Studio for Mac でプロジェクトを開いている状態で、まずは Entitlements.plist を開き、 「キーチェーンを有効にする」にチェックを入れる。 キーチェーングループの一覧には、アプリのバンドル識別子が含まれているはず。

f:id:griefworker:20180125225427p:plain

Xamarion.iOS プロジェクトのオプションを開き、iOS バンドル署名を選択。 カスタムエンタイトルメントが空欄になっていた場合は、 プロジェクト内の Entitlements.plist を指定する。

f:id:griefworker:20180125225614p:plain

以上。 あとは Security フレームワークを使って、キーチェーンにアクセスするコードを書けばいい。