簡體   English   中英

實體框架中的查詢

[英]queries in entity framework

我必須使用此查詢獲取前 20 行,而 like 子句不起作用。 誰能告訴我為什么/幫我找到解決方案?

var zipcodes = (from results in db1.ZipCodes1 
                                 where  results.CityType == "D" && results.ZIPCode like '%ZC %'
                                 select new Ajaxresults 
                {
                   ZIPCode= results.ZIPCode,
                   CityName = results.CityName,
                   StateAbbr = results.StateAbbr,
                   StateName = results.StateName
                }).GroupBy(o => o.ZIPCode);

代碼應如下所示:

var zipcodes = (from results in db1.ZipCodes1 
                where  results.CityType == "D" && results.ZIPCode.Contains("ZC ")
                select new Ajaxresults 
                {
                   ZIPCode= results.ZIPCode,
                   CityName = results.CityName,
                   StateAbbr = results.StateAbbr,
                   StateName = results.StateName
                }).GroupBy(o => o.ZIPCode).Take(20);

到 select 前 20 行,應使用 LINQ Take運算符

var zipcodes = (from results in db1.ZipCodes1
   ...
   ).Take(20);

String.Contains 方法會被翻譯成對應的 SQL LIKE 操作符。 您可以將查詢更改為以下內容:

var zipcodes = (from results in db1.ZipCodes1 
                             where results.CityType == "D" 
                                && results.ZIPCode.Contains("ZC ")
                             select new Ajaxresults 
            {
               ZIPCode= results.ZIPCode,
               CityName = results.CityName,
               StateAbbr = results.StateAbbr,
               StateName = results.StateName
            }).GroupBy(o => o.ZIPCode);

暫無
暫無

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

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