我有我想要缓存一个非常简单的国家实体。这完美的作品,但我想退换或进行只读,以防止开发商更改它的状态缓存实例的克隆版本。

我将如何实现这一目标?余因子评分,所述流利只读()方法将执行这一点,但它不是这种情况。

样品流利映射:

        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();

我的单元测试清楚地表明,实体缓存和同一个实体返回后续获取,但我想,一旦它从持久存储加载的对象是不可改变的。

谢谢!

有帮助吗?

解决方案

如果你希望你的类的实例是不可改变的(在这个意义上,这是不可能的修改对象实例),那么你就需要编写根据你的类 - 它没有任何关系NHib或流利NHib。作为示例,映射到NHib私有字段或私人财产setter和只露出属性获取公开。

使用NHib,可以指定在类的映射“可变=假”(不知道如何与FNH,对不起做到这一点)。这不会使运行时的目标不变,但它并通知NHib不检查插入,更新和删除对这些实体。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top