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);