【发布时间】:2021-08-28 16:08:04
【问题描述】:
我有一个对象数组,像这样:
accounts = new[]
{
new Account
{
AccountId = 1,
Name = "Account 1"
},
new Account
{
AccountId = 2,
Name = "Account 2"
}
}
我正在尝试运行此布尔检查:
var canAccess = _context.Class
.Where(x => x.Active)
.Where(x => x.ClassId)
.Any(x => accounts.Select(y => y.AccountId).Contains(x.AccountId)
我在我们的数据库中验证了现有的类是活动的并且与 ClassId 匹配,并且还有一个与对象数组中的内容匹配的 AccountId。但是,它并没有越过那条线(并且没有提供任何有用的错误)
我使用的语法有效吗?
【问题讨论】:
-
ClassId是布尔变量吗?因为你只是用.Where(x => x.ClassId)而不是.Where(x => x.ClassId == someIdValue)来检查它 -
并且没有提供任何有用的错误 它是否提供了任何错误?如果是这样,你应该在这里发帖。如果没有,您应该发布带有示例输入和预期输出的minimal reproducible example。另外,你错过了一个
);吃完了。 -
您可以运行配置文件并检查正在形成的查询
-
您使用的是什么 LINQ:LINQ to EF 6.x / EF Core 2.0 / 2.1 / 3.x / 5.x / 6.x?什么数据库提供商?
标签: c# arrays linq linq-to-entities