gpt4 book ai didi

nhibernate - 使用 Fluent Nhibernate 定义 NHibernate 过滤器的语法?

转载 作者:行者123 更新时间:2023-12-03 07:02:41 24 4
gpt4 key购买 nike

我似乎找不到正确的语法来使用流畅的 Nhibernate 定义 nhibernate 过滤器。

我正在尝试关注 ayende 的博文:

http://ayende.com/Blog/archive/2006/12/26/LocalizingNHibernateContextualParameters.aspx

我使用 .FormulaIs() 方法在我的属性上定义了公式,但在 google 上找不到如何将此定义转换为流畅的 nhibernate:

 < filter-def name='CultureFilter'>
< filter-param name='CultureId' type='System.Int32'/>
< /filter-def>

最佳答案

如果您从源代码构建 Fluent,现在支持过滤器。您可以像这样使用它们:

首先创建一个继承自FluentNHibernate.Mapping.FilterDefinition的类:

using FluentNHibernate.Mapping;

namespace PonyApp.FluentFilters
{
public class PonyConditionFilter : FilterDefinition
{
public PonyConditionFilter()
{
WithName("PonyConditionFilter")
.AddParameter("condition",NHibernate.NHibernateUtil.String);
}
}
}

在您的类的 ClassMap 中,使用 ApplyFilter 方法:

namespace PonyApp.Entities.Mappings
{
public class PonyMap : ClassMap<Pony>
{
public PonyMap()
{
Id(x => x.Id);
Map(x => x.PonyName);
Map(x => x.PonyColor);
Map(x => x.PonyCondition);
ApplyFilter<PonyConditionFilter>("PonyCondition = :condition");
}
}
}

然后将过滤器添加到您的流畅配置中:

Fluently.Configure()
.Mappings(m => m.FluentMappings.Add(typeof(PonyConditionFilter)))
//blah blah bunches of other important stuff left out
.BuildSessionFactory();

然后您可以像使用普通 NHibernate 一样打开和关闭它:

session.EnableFilter("PonyConditionFilter").SetParameter("condition","Wonderful");

关于nhibernate - 使用 Fluent Nhibernate 定义 NHibernate 过滤器的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/960625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com