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

次の行にあるCurrentStockのtoTraceString()を取得するにはどうすればよいですか?それはLINQのツーエンティティクエリではなく、単にListインスタンス - それはあなたがすでにToListと呼ばれていない可能性があるためlinqからエンティティクエリにtoTraceString()を取得する方法は?

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

答えて

9

を解決されていません。ところで

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(); 

はこれを試してみてください。なぜstringの代わりにdynamicを使用していますか?ダイナミックタイプはそれが理にかなっている特別な場合のみです - これは当てはまりません。

+0

ダイナミックの使用に関する助言にも感謝します。 – StackTrace