2012-07-24 3 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()을 가져 오는 방법은 무엇입니까? 당신이 이미 ToList를 불렀다 수 없기 때문에toTraceString()을 linq에서 엔터티 쿼리로 가져 오는 방법은 무엇입니까?

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

답변

9

해결되지 않는 - 그것은 Linq에 - 투 - 엔티티 쿼리하지만 단순히 List 인스턴스가 아닌.

이 시도 :

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는. 왜 string 대신 dynamic을 사용하고 있습니까? 다이내믹 타입은 의미가있는 특별한 경우에만 해당합니다.

+0

동적 사용에 대한 조언을 주셔서 감사합니다. – StackTrace

관련 문제