У меня есть очень простая сущность Country, которую я хочу кэшировать. Это прекрасно работает, но я хочу, чтобы клонированная версия кэшированного экземпляра была возвращена или сделана доступной только для чтения, чтобы разработчики не могли изменить ее состояние.
Как бы я этого достиг? Я думал, что метод Fluent Readonly () будет обеспечивать это, но это не так.
Образец Fluent Mapping:
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();
Мои модульные тесты ясно показывают, что сущности кэшируются и что одна и та же сущность возвращается при последующих получениях, но я хочу, чтобы объект был неизменным после загрузки из постоянного хранилища.
Спасибо!