0

私は EntityFramework を (初めて) 使用しており、クエリや更新などを行うことができました。次のように、3 つのテーブルを結合する linq クエリがあります。

//get a list of completed orders between the last run date of this job and NOW
        var completedOrders = from orders in db.orders
                              join orderStatus in db.orderStatus
                              on orders.statusID equals orderStatus.statusID
                              join aspnetUsers in db.aspnet_Users
                              on orders.userID equals aspnetUsers.UserId
                              into joined
                              where (orderStatus.statusID == 2 || orderStatus.statusID == 3 || orderStatus.statusID == 5) && (orders.dateTimeStamp > job.lastRunDate && orders.dateTimeStamp < DateTime.Now || !job.lastRunDate.HasValue)
                              select joined;

次に、単純な foreach ループがあります。

foreach (var order in completedOrders)
        {

            //process here
        }

私の質問は、foreach ループ内で情報を取得するにはどうすればよいですか? 次のような列データを取得する必要があります。

注文日"]

理想的には、Entity Frameworkを使用しているように強く型付けされることを望みます。

どんなフィードバックでも大歓迎です。

前もってありがとうアル

4

1 に答える 1

1

を削除してinto、匿名型を追加する必要があります。

...
on orders.userID equals aspnetUsers.UserId
where (orderStatus.statusID == 2 || orderStatus.statusID == 3 || orderStatus.statusID == 5) && (orders.dateTimeStamp > job.lastRunDate && orders.dateTimeStamp < DateTime.Now || !job.lastRunDate.HasValue)
select new { orders, orderStatus, aspnetUsers }

次に、結果をループできます

 foreach (var x in completedOrders)
 {
   // use x.orders.Date, etc.
 }
于 2012-09-13T18:08:08.380 に答える