2009-08-20 13 views
1

nHibernateにLinqのバージョン1.0を使用しています。私はウェブ上でこれに非常に少数の参照を見つけることができますnHibernate Linq投影

姓と、それはそれを言う 元に探して:私は 次LINQ文を実行すると、私はエラーに

ない単一長投影を受け取ります決して起こらないはずです! ClientIDはInt型で、 姓は文字列です。 投影のすべての文字列フィールドをコメントアウトしてClientIDをそのまま残してもOKですが、 surnameの後ろにエラーが追加されるとすぐに実行されます。

var context = m_ClientRepository.Linq; 

var result = (from client in context 
       from address in client.Addresses 
       from contact in client.Contacts 
       where client.Surname.StartsWith(surname) 
       && client.GivenName.StartsWith(givenName) 
       && contact.Value.StartsWith(phoneNumber) 
       group client by new { client.ClientID, client.Surname, client.GivenName } into clientGroup 
       select new ClientSearchDTO() 
       { 
        ClientID = clientGroup.Key.ClientID, 
        Surname = clientGroup.Key.Surname, 
        GivenName = clientGroup.Key.GivenName, 
        Address = clientGroup.Max(x => x.Addresses.FirstOrDefault().Address), 
        PhoneNumber = clientGroup.Max(x => x.Contacts.FirstOrDefault().Value) 
       }) 
       .Skip(Paging.FirstRecord(pageNumber)) 
       .Take(5); 

答えて

3

私の知る限り、NHibernateは1.0 LINQのselect句aren't supportedでサブクエリ。

これは問題の原因になっている可能性があります。

関連する問題