Sta*_*ace 6 .net c# linq-to-entities entity-framework
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();
Run Code Online (Sandbox Code Playgroud)
如何从CurrentStock上获取toTraceString()在以下行?它没有得到解决
File.AppendAllText(traceFile, CurrentStock.toTraceString());
Run Code Online (Sandbox Code Playgroud)
Lad*_*nka 10
你不能因为你已经调用过ToList
- 它不是Linq-to-Entities查询而只是一个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();
Run Code Online (Sandbox Code Playgroud)
顺便说一句.你为什么用dynamic
而不是string
?动态类型仅适用于有意义的特殊情况 - 事实并非如此.