Nhibernate Session.Get和Session.Load命令忽略筛选器

Nhibernate Session.Get和Session.Load命令忽略筛选器,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我正在使用带有过滤器的映射 但是当我试图持久化我的对象时,它首先想要得到一个快照(因为我的Id是一个字符串) 以下是过滤器定义映射: <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> <filter-def name='LanguageFilter' > <filter-param name='Id' type='System.Int32' /> </filter-def>

我正在使用带有过滤器的映射

但是当我试图持久化我的对象时,它首先想要得到一个快照(因为我的Id是一个字符串)

以下是过滤器定义映射:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <filter-def name='LanguageFilter' >
    <filter-param name='Id' type='System.Int32' />
  </filter-def>
</hibernate-mapping>

这篇文章(评论4)说session.Get和Load忽略了过滤器


还有其他选择吗,因为我需要这种语言是可变的。

好的,我所做的是:我没有使用SaveOrPersist,而是在新的时候保存,在旧的时候保存。这没有执行额外的get

session.EnableFilter("LanguageFilter").SetParameter("Id", 1);
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <filter-def name='LanguageFilter' >
    <filter-param name='Id' type='System.Int32' />
  </filter-def>
</hibernate-mapping>