如何将整个映射设置为只在NHibernate 3.2中按代码映射?

时间:2011-10-06 08:48:52

标签: nhibernate-mapping

我正在快速熟悉NHibernate 3.2及其“按代码映射”功能,并将我们的Fluent映射迁移到它。 是否有一个流利的“ReadOnly();”功能,使整个映射只读? 提前谢谢。

3 个答案:

答案 0 :(得分:6)

在映射中使用Mutable(false)。

阅读这篇文章,了解相应的hbm文件映射,我可以从中推断出这一点。

http://davybrion.com/blog/2007/08/read-only-data-in-nhibernate/

答案 1 :(得分:3)

使用PropertyMapper操作定义访问样式:

public class EntityMapping : ClassMapping<Entity>
{
     public EntityMapping()
     {
         Id(m => m.Id, map => map.Generator(Generators.HighLow));
         Property(m => m.Name, map => map.Access(Accessor.ReadOnly));
     }
}

答案 2 :(得分:3)

对于那些用流利的人来说,你正在寻找ReadOnly(),如下所示:

public class FooMap : ClassMap<Foo> {

    public FooMap() {
        Schema("bar");
        Table("foo");
        LazyLoad();

        ReadOnly();

        CompositeId()
            .KeyProperty(x => x.ID, "ID")
            .KeyProperty(x => x.Year, "Year");
        Map(x => x.FirstField).Column("FirstField").Length(1);
    }
}