0

次のように定義されたクラスがあります。

public class SearchResult
{
    public Customer Customer { get; set; }
    public Receipt Receipt { get; set; }
    public IEnumerable<ReceiptDetail> ReceiptDetail { get; set; }
}

私の Linq クエリでは、単一の SearchResult レコードを返したいのですが、ReceiptDetail のリストを返すのに問題があります。私が行った場合:

 var list=(from cust in dbContext.Customers 
     join rec in dbContext.Receipts on cust.IdCustomer equals rec.IdCustomer
     join recdet in dbContext.ReceiptDetails on rec.IdReceipt equals recdet.IdReceipt
     select new SearchResult
     {
          Customer=cust,
          Receipt=rec,
          ReceiptDetail = (from  r1 in recdet select r1).ToList() // COMPILER ERROR HERE
     }).ToList();

「ソース タイプ ReceiptDetail 'Select' not found のクエリ パターンの実装が見つかりませんでした」というメッセージが表示されます。

私は何を間違っていますか?

4

1 に答える 1

1

さて、recdetここから来ます:

join recdet in dbContext.ReceiptDetails on rec.IdReceipt equals recdet.IdReceipt

つまり、単一の領収書の詳細です。次に、ここでコレクションとして使用しようとしています。

from  r1 in recdet select r1

私はあなたが実際にグループに参加したいと思っていると思います:

join recdet in dbContext.ReceiptDetails on rec.IdReceipt equals recdet.IdReceipt
  into recdets
...
ReceiptDetail = (from  r1 in recdets select r1).ToList()

またはより単純に後半の部分:

ReceiptDetail = recdets.ToList()
于 2012-10-02T21:44:41.827 に答える