[英]LINQ expression to check if field contains string
我有這個代碼
private List<Autocomplete> _GetPeople(string query)
{
List<Autocomplete> people = new List<Autocomplete>();
var results = (from p in db.People
where (p.FirstName + " " + p.LastName).Contains(query)
orderby p.FirstName, p.LastName
select p).Take(10).ToList();
}
我想知道如何用這種格式寫一些等效的東西
private ApplicationDbContext _dbContext;
public PeopleController()
{
_dbContext = new ApplicationDbContext();
}
var result=_dbContext.people.where(p=> ...... ).contains()...
我該怎么做? 謝謝。
更新,我自己寫了一些代碼,但沒有用。似乎我不能在||中使用where 使用雙重條件
var result = _dbContext.people;
if (!string.IsNullOrEmpty(query)) result = result.Where(a => a.Name.Contains(query) || a.LastName.Contains(query));
從您的評論看來,您似乎想要轉換為方法語法。 就個人而言,我發現LINQ語法更易於讀寫。 但是方法語法應如下所示:
var results = db.People
.Where(p => (p.FirstName + " " + p.LastName).Contains(query))
.Orderby(p => p.FirstName)
.ThenBy(p => p.LastName)
.Take(10)
.ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.