2012-07-24 13 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(); 

Come si può arrivare a TraceString() da CurrentStock nella riga seguente? non viene risoltocome arrivare a TraceString() da linq alla query di entità?

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

risposta

9

È possibile non perché è stato già chiamato ToList - non è una query LINQ-to-entità, ma semplicemente un'istanza List.

Prova questo:

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. perché stai usando dynamic invece di string? Il tipo dinamico è solo per casi speciali in cui ciò ha senso: non è questo il caso.

+0

grazie anche per il consiglio sull'utilizzo di dinamico. – StackTrace

Problemi correlati