0

以下のようなモデルがあり、4 つの異なるテーブルのアイテムを表示したいと考えています。

public class AuctionViewer
{
 public int AuctionId { get; set; }
public string ProductName { get; set; }
public int Price { get; set; }
public DateTime  startTime { get; set; }
public DateTime  EndTime { get; set; }
public string Category { get; set; }
public int ExpectedHit { get; set; }
public string Status { get; set; }
}

以下は私のコントローラーコードです。

 public ActionResult Index()
       {
      MightyMouseContainer ctx = new MightyMouseContainer();

       var  NewList = new AuctionViewer
             { 
                     from CT in ctx.Categories 
                     join PD in ctx.Items on CT.Category_ID equals PD.Category_ID
                     join AU in ctx.Auction_Schedule on PD.Item_ID equals AU.Item_ID 
                     join ST in ctx.Status on AU.Status_ID equals ST.Status1
                     orderby AU.Auction_ID
                     select new
                     {
                       AuctionId = AU.Auction_ID, 
                       ProductName = PD.Item_name,
                       Price= PD.Item_Value,
                       startTime = AU.Start_Time,
                       EndTime = AU.End_Time,
                       Category = CT.Category_Description,
                       Status = ST.Description
                    };


    }

        return View(NewList);
    }

なぜエラーが発生するのだろうか。お知らせ下さい。私はかなり長い間これに取り組んできましたが、先に進むには何らかの助けが必要であることに気付きました. その他、迅速な対応に感謝いたします。ありがとう

4

1 に答える 1

0

ビューが のモデルを受け入れると仮定するとIEnumerable<AuctionViewer>、select を変更して、厳密に型指定されたコレクションを返す必要があります。

var  NewList = from CT in ctx.Categories 
                     join PD in ctx.Items on CT.Category_ID equals PD.Category_ID
                     join AU in ctx.Auction_Schedule on PD.Item_ID equals AU.Item_ID 
                     join ST in ctx.Status on AU.Status_ID equals ST.Status1
                     orderby AU.Auction_ID
                     select new AuctionViewer
                     {
                       AuctionId = AU.Auction_ID, 
                       ProductName = PD.Item_name,
                       Price= PD.Item_Value,
                       startTime = AU.Start_Time,
                       EndTime = AU.End_Time,
                       Category = CT.Category_Description,
                       Status = ST.Description
                    };

return View(NewList);

編集2 番目のエラー メッセージから、ビューはList<AuctionViewer>. Listコントローラー メソッドを変更して、次のように IQueryable を具体化できます。

var  NewList = (from CT in ctx.Categories 
                     join PD in ctx.Items on CT.Category_ID equals PD.Category_ID
                     join AU in ctx.Auction_Schedule on PD.Item_ID equals AU.Item_ID 
                     join ST in ctx.Status on AU.Status_ID equals ST.Status1
                     orderby AU.Auction_ID
                     select new AuctionViewer
                     {
                       AuctionId = AU.Auction_ID, 
                       ProductName = PD.Item_name,
                       Price= PD.Item_Value,
                       startTime = AU.Start_Time,
                       EndTime = AU.End_Time,
                       Category = CT.Category_Description,
                       Status = ST.Description
                    }).ToList();

return View(NewList);
于 2012-09-17T12:54:23.670 に答える