Linq To Entities:字符串.包含一个列表 [英] Linq To Entities: String.Contains a list

查看:142
本文介绍了Linq To Entities:字符串.包含一个列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将ASP.net Core 3.0Entity Framework Core 3.0Pomelo.EntityFrameworkCore提供程序用于MySQL,我需要查询来自特定城镇的所有用户. 比方说,例如,我有一个名为targettedTowns的字符串列表,其中有以下城镇

I am using ASP.net Core 3.0 with Entity Framework Core 3.0 and Pomelo.EntityFrameworkCore provider for MySQL, I need to query all the users that are from specific Towns. Lets say for example I have a list of strings called targettedTowns in which I have the following towns

var targettedTowns = new List<string>() {"korangi","landhi","zia colony","shah faisal","quaidabad"};

  • korangi
  • landhi
  • 齐亚殖民地
  • shah faisal
  • quaidabad
    • korangi
    • landhi
    • zia colony
    • shah faisal
    • quaidabad
    • 现在,我想使用Linq Lambda语法查找targettedTowns列表中的所有用户.

      Now I want to find all the users that are located in the targettedTowns list using Linq Lambda syntax.

      数据库中的用户城镇保存起来就像

      Users in my database have their towns saved like

      • 科朗伊
      • 科朗伊齐亚殖民地
      • 科兰吉-碧泰殖民地
      • Korangi-Allah瓦拉镇
      • Landhi-Sherpao
      • Landhi-Awami殖民地
      • Landhi-Sherabad
      • ShahFaisal

      我目前正在尝试的是

      var users = context.Users.Where(x => x.Town.ToLower().Contains(targettedList)).ToList();
      

      但是作为String.Contains不会在参数中包含列表,所以我不能使用它.

      but as String.Contains does not take a list in argument so I cant use this.

      推荐答案

      您只需要在以下情况下将x.Town.ToLower()替换为targettedList:

      You just need to replace x.Town.ToLower() with targettedList in where condition:

      var users = context.Users.Where(x => targettedList.Contains(x.Town)).ToList();
      

      这篇关于Linq To Entities:字符串.包含一个列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆