Hi Hudson, thanks for your reply.

Yes, I'm on the second situation, and your suggestion worked like a
charm.
Just what I needed.

Once again, thank you very much.

On Apr 27, 11:13 pm, Hudson Akridge <hudson.akri...@gmail.com> wrote:
> Erm, first of my examples should have been Restrictions.Eq, not .In,
> apologies. Reading your question a couple more times, I believe you're
> probably leaning towards the second example. Again, check out chapter 12.4
> in the NHibernate reference documentation for more details and other methods
> of getting what you want.
>
> On Mon, Apr 27, 2009 at 5:06 PM, Hudson Akridge 
> <hudson.akri...@gmail.com>wrote:
>
> > Your question's more of an NHibernate specific question, so you may have
> > accidentally posted to the fluent group instead. ;) In any event, I'll try
> > and help however I can here.
> > First off, what do you mean in terms of an opposite scenario? The
> > description you've given changes the objects and players a little bit. Your
> > first example is finding a class, by property, which matches any of the
> > values you have in a collection. Your second example, I'm assuming, is
> > finding on a class that has a collection, which one of the collections
> > values is equal to <SomeValue>.
>
> > If that's correct, then it depends on what your collection is of. If it's
> > of primitive values, then it should be relatively simple. You should be able
> > to do something like:
>
> > var myInstance = (MyClass)session.CreateCriteria(typeof(MyClass)
> > )
> >                                           .Add(Restrictions.In("SomeList",
> > SomeValue))
> >                                           .UniqueResult();
>
> > If it's a collection of entity classes that you have mapped, you'd want to
> > do something as is pointed out in chapter 12.4 in the NHibernate Reference
> > documents:
>
> >  var myInstance = (MyClass)session.CreateCriteria(typeof(MyClass))
> >                                           .CreateCriteria("SomeList")
>
> >  .Add(Restrictions.Eq("PropertyName", SomeValue))
> >                                           .UniqueResult();
>
> > What happens here is that the second CreateCriteria call creates a separate
> > criteria, that's now operating on the referenced collection. Now, any added
> > restrictions will be like sub-queries on that collection's entity class.
>
> > Hope that helps!
>
> > On Mon, Apr 27, 2009 at 1:06 PM, Francisco Silva <
> > francisco.sam...@gmail.com> wrote:
>
> >> So if I had a ListOfSomething and I want an instance of MyClass whose
> >> SomeProperty value is contained in the ListOfSomething, I would use
>
> >> var myInstance = (MyClass)session.CreateCriteria(typeof(MyClass))
> >>                                           .Add(Restrictions.In
> >> ("SomeProperty", ListOfSomething))
> >>                                           .UniqueResult();
>
> >> Now what if I'm in the opposite scenario?
> >> I mean, I have SomeValue and I want an instance of MyClass whose
> >> SomeList values contain SomeValue.
> >> I would hope that there was something like
>
> >> var myInstance = (MyClass)session.CreateCriteria(typeof(MyClass))
> >>                                           .Add(Restrictions.In
> >> (SomeValue, "SomeList"))
> >>                                           .UniqueResult();
>
> >> But there isn't. What other options do I have?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to fluent-nhibernate@googlegroups.com
To unsubscribe from this group, send email to 
fluent-nhibernate+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to