gpt4 book ai didi

nhibernate - NH3.2 使用 'where' 子句按代码映射

转载 作者:行者123 更新时间:2023-12-03 09:32:38 24 4
gpt4 key购买 nike

我尝试使用 MappingByCode 定义与“where”子句的多对多关系来自 NH3.2 ,但我不知道我该怎么做。

FluentNHibernate我可以使用 ChildWhere()方法:

 public class ProcedureMap : ClassMap<Procedure>
{
public ProcedureMap()
{
this.HasManyToMany(a => a.FormTemplates).ChildWhere("IsDeleted = 0").AsSet();
}
}

此代码将生成下一个 HBM:
 <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class xmlns="urn:nhibernate-mapping-2.2" name="Procedure" table="Procedure">
<set name="FormTemplates" table="ProceduresToFormTemplates">
<key foreign-key="FK_Procedures_FormTemplates">
<column name="ProcedureId" />
</key>
<many-to-many class="FormTemplate" where="IsDeleted = 0">
<column name="FormTemplateId" />
</many-to-many>
</set>
</class>
</hibernate-mapping>

如何使用 MappingByCode 获得相同的映射来自 NH3.2 ?

最佳答案

您将在多对多映射上使用过滤器方法。

this.Bag(
x => x.Procedure,
m =>
{
m.Table("Procedure");
m.Key(k => k.Column("ProcedureId"));
m.Filter("NoDeleted", mapper => mapper.Condition("IsDeleted = 0"));
},
x => x.ManyToMany(
map =>
{
map.Column("FormTemplateId");
}));

关于nhibernate - NH3.2 使用 'where' 子句按代码映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8714307/

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