Perhaps if I were using a bunch of Morelinq extensions, but not worth it
for just this one.  I'd rather find a good native NH way to do this.  After
all, I can just wrap this up into an extension method..


On Fri, Jan 24, 2014 at 1:04 PM, Fran Knebels <[email protected]> wrote:

> the dll for morelinq is 57kb.
>
> I don't know your deployment situation, but what about ILMerge'ing all the
> dll/exe into a single exe if you are deploying an exe.
>
>
> On Fri, Jan 24, 2014 at 3:55 PM, Mike Christensen <[email protected]>wrote:
>
>> Very cool!  However, this is for an open source project so I don't want
>> to add any more external dependencies to the project, since users will have
>> to download those too.  Thanks!
>>
>> Mike
>>
>>
>> On Fri, Jan 24, 2014 at 12:44 PM, Fran Knebels <[email protected]>wrote:
>>
>>> you might want to try using MoreLinq.  MoreLinq adds a DistinctBy
>>> extension method.
>>>
>>> I setup a little test.
>>>
>>>             using (ISession session = SessionFactory.OpenSession())
>>>             {
>>>                 using (ITransaction tx = session.BeginTransaction())
>>>                 {
>>>                     var person = new Person { Name = "Fred" };
>>>                     session.Save(person);
>>>                     var person1 = new Person { Name = "Fred" };
>>>                     session.Save(person1);
>>>                     var person2 = new Person { Name = "Fred" };
>>>                     session.Save(person2);
>>>                     var person3 = new Person { Name = "Fred" };
>>>                     session.Save(person3);
>>>                     var person4 = new Person { Name = "Fred" };
>>>                     session.Save(person4);
>>>
>>>                     session.Flush();
>>>
>>>                     var personList = (from p in session.Query<Person>()
>>> select p).DistinctBy(x => new { x.Name }).ToList();
>>>
>>>
>>>
>>>
>>>
>>>                     tx.Rollback();
>>>                 }
>>>             }
>>>
>>> personList return 1 person.
>>>
>>>
>>> On Fri, Jan 24, 2014 at 3:31 PM, Mike Christensen <[email protected]>wrote:
>>>
>>>> I basically want this query:
>>>>
>>>> select distinct name from mytable order by name;
>>>>
>>>> The following works, but I find it rather overly complex:
>>>>
>>>> var formSyn = session.QueryOver<Models.NlpFormSynonyms>()
>>>>    .OrderBy(p => p.Name).Asc
>>>>    .Select(s => s.Name)
>>>>
>>>>  
>>>> .RootCriteria.SetProjection(Projections.Distinct(Projections.Property<Models.NlpFormSynonyms>(p
>>>> => p.Name)))
>>>>    .List<Models.NlpFormSynonyms>();
>>>>
>>>>
>>>> I've also tried this:
>>>>
>>>> var formSyn = session.QueryOver<Models.NlpFormSynonyms>()
>>>>    .OrderBy(p => p.Name).Asc
>>>>    .Select(s => s.Name)
>>>>    .TransformUsing(Transformers.DistinctRootEntity)
>>>>    .List();
>>>>
>>>> Which looks nicer, but causes the runtime exception:
>>>>
>>>> An unhandled exception of type
>>>> 'NHibernate.Exceptions.GenericADOException' occurred in NHibernate.dll
>>>>
>>>> Additional information: Unable to perform find[SQL: SQL not available]
>>>>
>>>> What's the best way to do this?  Thanks!
>>>>
>>>> Mike
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nhusers" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/nhusers.
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "nhusers" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/nhusers.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "nhusers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/nhusers.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/nhusers.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to