从LINQ查询中获取字段值而不进行迭代

时间:2014-10-15 06:50:39

标签: c# linq

我在控制器中有以下查询,我想在变量中存储列值,但我无法迭代它。这是我的代码:

var srmas = (
            from SRMAs in db.SRMAs
            join SRMAStatus in db.SRMAStatus on SRMAs.Status equals SRMAStatus.Id
            join PurchaseOrders in db.PurchaseOrders on SRMAs.PONumber equals PurchaseOrders.PONumber
            join Suppliers in db.Suppliers on PurchaseOrders.SupplierID equals Suppliers.SupplierID
            join SRMADetails in db.SRMADetails on SRMAs.Id equals SRMADetails.SRMAId
                where(SRMAs.Id == srmaid)
                group SRMADetails by new 
                {
                    SRMADetails.Id, 
                    SRMADetails.SRMAId, 
                    SRMADetails.SupplierPartNum, 
                    SRMAs.PONumber, 
                    SRMAs.ActualAmount, 
                    SRMAs.ApprovedOn, 
                    SRMAs.Status, 
                    SRMAs.TrackingNumber,
                    SRMAs.SupplierRMANumber, 
                    SRMAs.RequestedFromSupp, 
                    SRMAs.CreatedOn, 
                    Suppliers.SupplierName, 
                    SRMAStatus.StatusName, 
                    PurchaseOrders.PODate, 
                    PurchaseOrders.suppliersOrderNumber 
                } into grp
                    select new 
                    {
                        grp.Key.Status,
                        grp.Key.SRMAId,
                        grp.Key.Id,
                        grp.Key.PONumber,
                        grp.Key.SupplierRMANumber,
                        grp.Key.ActualAmount,
                        grp.Key.SupplierPartNum,
                        grp.Key.RequestedFromSupp,
                        grp.Key.TrackingNumber,
                        grp.Key.ApprovedOn,
                        grp.Key.SupplierName,
                        grp.Key.StatusName,
                        grp.Key.PODate,
                        grp.Key.suppliersOrderNumber,
                        grp.Key.CreatedOn,
                        Sum = grp.Sum(SRMADetails => SRMADetails.Cost * SRMADetails.QtyReturned)
                    }
            ).ToList();

System.Collections.IEnumerable et = (System.Collections.IEnumerable)srmas;
IEnumerator it = et.GetEnumerator();
while (it.MoveNext())
{
    SRMA current = (SRMA)it.Current;
    Response.Write(current.Status);
}

ViewBag.SRMAs = srmas.Select(srma => new IndexViewModel
            {
                Id = srma.SRMAId,
                SupplierRMANum = srma.SupplierRMANumber,
                SRMADetailsID = srma.Id,
                PONumber = srma.PONumber,
                CreatedOn = srma.CreatedOn,
                SupplierName = srma.SupplierName,
                SRMAStatus = srma.StatusName,
                Status = srma.Status,
                suppliersOrderNumber = srma.suppliersOrderNumber,
                PODate = srma.PODate,
                Sum = srma.Sum,
                TrackingNumber = srma.TrackingNumber,
                ActualAmount = srma.ActualAmount
            }).ToList();

我只想获得第一条记录的Status值。我该怎么做?

0 个答案:

没有答案