2012-07-24 15 views
5
dynamic traceFile = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\EntityFrameworkTrace.log";     
var CurrentStock = (from s in DBViews.StockStatus 
        where s.ProductID != 10 
        orderby s.ProductName 
        select new 
        { 
         s.ProductID, 
         s.ProductName, 
         CurrentStock = s.TotalStocked - s.TotalSold, 
         s.CurrentSellingRate, 
         CashValue = (s.TotalStocked - s.TotalSold) * s.CurrentSellingRate, 
         s.LastStocked, 
         s.LastCostPrice, 
         s.LastQtyStocked 
        }).ToList(); 

File.AppendAllText(traceFile, CurrentStock.toTraceString()); 
return CurrentStock.ToList(); 

Şu anki Çizelge'denTraceString() yöntemine nasıl ulaşabilirim? Bunu zaten ToList çağrıda olamaz çünküTraceString() linq to entities sorgusuna nasıl gidilir?

File.AppendAllText(traceFile, CurrentStock.toTraceString()); 

cevap

9

çözülüyor değil - bir Linq varlıkları sorgu ama sadece List örneği değil.

bu deneyin:

var CurrentStock = (from s in DBViews.StockStatus 
        where s.ProductID != 10 
        orderby s.ProductName 
        select new 
        { 
         s.ProductID, 
         s.ProductName, 
         CurrentStock = s.TotalStocked - s.TotalSold, 
         s.CurrentSellingRate, 
         CashValue = (s.TotalStocked - s.TotalSold) * s.CurrentSellingRate, 
         s.LastStocked, 
         s.LastCostPrice, 
         s.LastQtyStocked 
        }); // No ToList here! 

File.AppendAllText(traceFile, ((ObjectQuery)CurrentStock).ToTraceString()); 
return CurrentStock.ToList(); 

Btw. neden string yerine dynamic kullanıyorsunuz? Dinamik tip sadece bunun mantıklı olduğu özel durumlar içindir - durum böyle değildir.

+0

Dinamik kullanım önerileri için teşekkürler. – StackTrace