Asp.net-Mvc

為什麼 LINQ to Entities 無法辨識方法“System.String ToString()?

  • April 11, 2012

在 MVC3 Web 應用程序中出現錯誤。 LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression.

當我嘗試使用 EF 從查詢中獲取值時:

public class DataRepository
   {
       public mydataEntities1 dbContext = new mydataEntities1();

       public List<SelectListItem> GetPricingSecurityID()
       {
       var pricingSecurityID = (from m in dbContext.Reporting_DailyNAV_Pricing
                                    select new SelectListItem
                                        {
                                               Text = m.PricingSecurityID.ToString(),
                                               Value = m.PricingSecurityID.ToString()
                                        });

       return pricingSecurityID.ToList();
       }
   }

那不能轉換為SQL。我想,理論上,它可以,但沒有實現。

您只需要在獲得結果後執行投影:

var pricingSecurityID = (from m in dbContext.Reporting_DailyNAV_Pricing
                                    select m.PricingSecurityID).AsEnumerable()
   .Select(x => new SelectListItem{ Text = x.ToString(), Value = x.ToString() });

引用自:https://stackoverflow.com/questions/10110266