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