簡體   English   中英

LINQ to Entities無法識別方法'System.String get_Item(Int32)',並且該方法無法轉換為商店表達式

[英]LINQ to Entities does not recognize the method 'System.String get_Item(Int32)' method, and this method cannot be translated into a store expression

當我執行此查詢時,出現此錯誤:

return (from i in _ctx.TestPackages
   where i.Id==TestPackageId

   select new  ViewTestPackageState
   {
       Id = i.Id,
       PackageNumber = i.PackageNumber,
       ReInstatement = ReturnTestPackageState(i.Id, "Reinstatment")[0],
       ReInstatementReportNumber = ReturnTestPackageState(i.Id, "Reinstatment")[1],
       ReInstatementSubmitDateTime = ReturnTestPackageState(i.Id, "Reinstatment")[2],

       TestReportNumber = ReturnTestPackageState(i.Id, "Test")[1],
       TestState = ReturnTestPackageState(i.Id, "Test")[0],
       TestSubmitDateTime = ReturnTestPackageState(i.Id, "Test")[2],

       CleanReportNumber = ReturnTestPackageState(i.Id, "Clean")[1],
       CleanSubmitDateTime = ReturnTestPackageState(i.Id, "Clean")[2],
       CleaningState = ReturnTestPackageState(i.Id, "Clean")[0],

       Drying = ReturnTestPackageState(i.Id, "Drying")[0],
       DryingReportNumber = ReturnTestPackageState(i.Id, "Drying")[1],
       DryingSubmitDateTime = ReturnTestPackageState(i.Id, "Drying")[2],

       Flushing = ReturnTestPackageState(i.Id, "Flushing")[0],
       FlushingReportNumber = ReturnTestPackageState(i.Id, "Flushing")[1],
       FlushingSubmitDateTime = ReturnTestPackageState(i.Id, "Flushing")[2],

       LineCheckReportNumber = ReturnTestPackageState(i.Id, "LineCheck")[1],
       LineCheckState = ReturnTestPackageState(i.Id, "LineCheck")[0],
       LineCheckSubmitDateTime = ReturnTestPackageState(i.Id, "LineCheck")[2],

       Size = i.Size.ToString(),
       TestPackageOrder = i.TestPackageOrder,

   }).ToList();

錯誤:LINQ to Entities無法識別方法'System.String get_Item(Int32)',並且該方法無法轉換為商店表達式

我知道問題是因為查詢,並且查詢應該在select語句之前執行,所以我的問題是如何在select之前執行此查詢?

執行查詢,然后從結果中選擇對象

var result = (from i in _ctx.TestPackages
   where i.Id==TestPackageId).ToList();

return(result.Select( new ViewTestPackageState{...}));
var rawList = (from i in _ctx.TestPackages where i.Id==TestPackageId).ToList();

return rawList.Select(i => new ViewTestPackageState
       {
           Id = i.Id,
           PackageNumber = i.PackageNumber,
           ReInstatement = ReturnTestPackageState(i.Id, "Reinstatment")[0],
           // etc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM