我有一个非常简单的 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();
我的单元测试清楚地表明实体已缓存,并且在后续获取时返回相同的实体,但我希望对象在从持久存储加载后是不可变的。
谢谢!