我使用NHibernate和NHibernate.Mapping.Attributes库映射我的数据库表,但我遇到了让过滤器属性工作的问题。
假设一个A类有一组B类的对象。因此,我有以下内容:
[NHibernate.Mapping.Attributes.Set(0, Inverse = true, Lazy = NHibernate.Mapping.Attributes.CollectionLazy.False)]
[NHibernate.Mapping.Attributes.Key(1, Column = "ClassAId")]
[NHibernate.Mapping.Attributes.OneToMany(2, Class = "ClassB, Assembly")]
public virtual ISet<ClassB> ClassBs { get; set; }我想在这个集合上创建一个过滤器,只带出满足给定条件的B类对象,比如Status = 1。
如何创建这样的过滤器?
发布于 2009-11-27 23:20:00
集合映射的where参数应该能够帮助您。根据文档中的where参数:
SQL:(可选)指定检索或删除集合时要使用的任意
WHERE条件(如果集合应仅包含可用数据的子集,则非常有用)
因此,要过滤Status (假设Status是为ClassB映射的表中的一个SQL列-尽管此列不必在NHibernate映射中进行映射)。
[NHibernate.Mapping.Attributes.Set(0,...., Where = "Status = 1", .....)]
...
public virtual ISet<ClassB> ClassBs { get; set; }https://stackoverflow.com/questions/1787074
复制相似问题