开发者

NHibernate.Mapping.Attributes.Filter

开发者 https://www.devze.com 2022-12-12 02:36 出处:网络
I\'m mapping my database tables using NHibernate with NHibernate.Mapping.Attributes library and I got stuck to get the Filter attributes to work.

I'm mapping my database tables using NHibernate with NHibernate.Mapping.Attributes library and I got stuck to get the Filter attributes to work.

Suppose a class A that has a set of objects of class B. So, I have, the following:

[NHibernate.Mapping.Attributes.Set(0, Invers开发者_开发问答e = 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; }

I want to create a filter on this collection to bring only class B objects that satisfy a given criteria, such as Status = 1.

How can I create such Filter?


The where parameter of the Set mapping should be able help you out. Per the documentation the where parameter:

where: (optional) specify an arbitrary SQL WHERE condition to be used when retrieving or removing the collection (useful if the collection should contain only a subset of the available data)

So to filter on Status (assuming Status is a SQL column in the table mapped for ClassB - though this column does not have to be mapped in the NHibernate mapping).

[NHibernate.Mapping.Attributes.Set(0,...., Where = "Status = 1", .....)]
...
public virtual ISet<ClassB> ClassBs { get; set; }
0

精彩评论

暂无评论...
验证码 换一张
取 消