考虑以下两个类:
public class TypeAGood{
public virtual int Id{get;set;}
public virtual string Description{get;set;}
public virtual Type Type{get;set;}
}
public virtual class Type{
public virtual int Id{get;set;}
public virtual string Name{get;set;}
}
映射:
public class TypeMap : ClassMap<Type>
{
public TypeMap()
{
Table("Type");
Id(x => x.Id);
Map(x => x.Name);
}
}
public class TypeAGoodMap : ClassMap<TypeAGood>
{
public TypeAGoodMap()
{
Table("Good");
Id(x => x.Id);
Map(x => x.Description);
References(x => x.Type)
.Fetch.Join()
.Column("TypeId")
.ForeignKey("Id");
}
}
类型可以有不同的值,如a,b,c。
如何将TypeAGoodMap更改为仅映射具有类型a的商品?
谢谢,
人
答案 0 :(得分:0)
听起来你正在寻找一个描述here的过滤器。不幸的是,FluentNhibernate还不支持。但这就是hbm中的样子:
<filter name="typeAfilter" condition=":typeA = TypeId"/>
然后在查询中执行以下操作:
ISession session = ...;
session.EnableFilter("typeAfilter").SetParameter("typeA ", "a");
IList<TypeAGood> results = session.CreateCriteria(typeof(TypeAGood))
.List<TypeAGood>();