C# 按条件选择行以填充列表

C# 按条件选择行以填充列表,c#,linq,entity-framework,where-clause,C#,Linq,Entity Framework,Where Clause,我有一个列表用户,我想选择那些有用户名的行来填充用户列表 例如,用户列表包含“joe”和“Mary”。我想选择包含Username字段为“joe”或“mary”的行。我该怎么写 List<string> Users = new List<string>() {"joe", "marry"}; model = model.Where(r => r.UserName ??? List Users=newlist(){“joe”,“mary”}; model=model

我有一个列表
用户
,我想选择那些有
用户名
的行来填充
用户
列表

例如,
用户
列表包含“joe”和“Mary”。我想选择包含
Username
字段为“joe”或“mary”的行。我该怎么写

List<string> Users = new List<string>() {"joe", "marry"};
model = model.Where(r => r.UserName ???
List Users=newlist(){“joe”,“mary”};
model=model.Where(r=>r.UserName???
试试这个:

model = model.Where(r => Users.Contains(r.Username));

类似的tsql是,('joe','Mary')中的r.username确保列表是一个列表或一个基元数组(如字符串)或来自同一上下文的IQueryable。否则Linq将尝试将复杂类发送到实体框架(数据库)EF Linq会抱怨,SQL不支持
可枚举。Where'string
List'Foo
谢谢。它起作用了。用户来自角色。GetUsersInRole(角色);