在T-SQL中,您可以进行如下查询:
SELECT * FROM Users WHERE User_Rights IN ("Admin", "User", "Limited")
Run Code Online (Sandbox Code Playgroud)
你会如何在LINQ to Entities查询中复制它?它甚至可能吗?
通常我们会找到包含以下代码的通用列表:
CartItem Item = Items.Find(c => c.ProductID == ProductID);
Item.Quantity = Quantity;
Item.Price = Price;
Run Code Online (Sandbox Code Playgroud)
所以上面的代码找到并更新了其他数据,但如果我想通过多个条件找到,那么我该如何编写代码呢?
我想写代码如下:
CartItem Item = Items.Find(c => c.ProductID == ProductID and c.ProductName == "ABS001");
Run Code Online (Sandbox Code Playgroud)
当我们找到通用列表时,请引导我了解多种情况.
我有一个方法,如果UserId在数组中,应该返回用户列表.UserIds数组传递给方法.
我不知道如何在数组中编写... where userid?
下面in ids[]显然不正确.
public List<User> GetUsers(int[] ids)
{
return Users.Values.Where(u => u.UserID in ids[]).ToList();
}
Run Code Online (Sandbox Code Playgroud)
任何想法如何纠正?
谢谢,
我有一个场景,我需要使用LINQ构建一个SQL查询,其中包含可变数量的OR子句.我正在编写一个函数,它将根据一些输入构建查询.函数定义看起来类似于......
function BuildQuery(ICollection<ColumnsThatNeedToBeTrue> columns)
{
...
}
Run Code Online (Sandbox Code Playgroud)
所以,我给了一个我需要检查的列的集合,并且检查需要使用OR子句.
如果columns数组包含A和B,我需要查询来检查列A是否为真或列为B真.
如果columns数组包含A,B并且C,我需要查询并检查AOR BOR C是否为真.
我不知道如何在一个单一内完成这一切Where,因为我不知道如何逐步增加其他||条款.基于输入数组,我不确定如何在下面包含额外的OR检查.
var query = entities.Where(m => m.A == true || m.B == true ...)
Run Code Online (Sandbox Code Playgroud)
我不能链接Where函数,每个函数用于自己的列检查,因为它使用AND子句构建该查询,我需要OR.
有没有办法使用LINQ构建这样的查询?