キャッシュしたい非常に単純なCountryエンティティがあります。これは完全に機能しますが、開発者がインスタンスの状態を変更できないように、キャッシュされたインスタンスのクローンバージョンを返すか、読み取り専用にする必要があります。
どうすればこれを達成できますか?Fluent Readonly()メソッドがこれを強制するだろうと思いましたが、そうではありません。
流暢なマッピングのサンプル:
Id(x => x.Id);
Map(x => x.Name).WithLengthOf(50).Not.Nullable().Unique();
Map(x => x.IsoCode).WithLengthOf(10).Not.Nullable().Unique();
HasMany(x => x.States).Cascade.None().LazyLoad();
Cache.AsReadOnly();
私の単体テストは、エンティティがキャッシュされ、同じエンティティが後続の取得で返されることを明確に示していますが、永続ストアからロードされたオブジェクトは不変である必要があります。
ありがとう!