C# EF核心3-简单';其中';查询抛出错误?
我构建了一个查询数据库的小型HTTPAzure函数。我正在做一个这样的查询C# EF核心3-简单';其中';查询抛出错误?,c#,entity-framework-core,azure-functions,C#,Entity Framework Core,Azure Functions,我构建了一个查询数据库的小型HTTPAzure函数。我正在做一个这样的查询 var item = await DbContext.Items .Where(x => x.ItemId == itemId && x.IsActive) .ToListAsync(); 现在,当我这样做时,它会抛出一个错误: System.Private.CoreLib:执行函数测试时发生异
var item = await DbContext.Items
.Where(x => x.ItemId == itemId && x.IsActive)
.ToListAsync();
现在,当我这样做时,它会抛出一个错误:
System.Private.CoreLib:执行函数测试时发生异常。Microsoft.EntityFrameworkCore:LINQ表达式“DbSet”
[2020-10-15T20:56:40.424]。其中(r=>r.ItemId==\uuuu ItemId\u0&&r.IsActive==True)无法转换。以可以翻译的形式重写查询,或者通过插入对AsEnumerable()、AsAsAsAsyncEnumerable()、ToList()或ToListSync()的调用显式切换到客户端计算。有关更多信息,请参阅
一旦我删除&&
并使其查询单个属性,它就会工作。我看过其他帖子,他们得到了相同的错误消息,但他们在查询中使用了更复杂的操作。在这里,它很简单,我知道它可以做到,因为实体框架核心文档甚至使用了这样的示例。我还尝试在IQueryable
上使用toListSync()FirstOrDefault()
,FirstOrDefaultAsync()
也已尝试过这两种方法
这是我的DbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, int>
{
#region DbSets
public DbSet<Item> Items { get; set; }
#endregion
#region Constructors
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
#endregion
}
请显示您的实体和DbContext定义。更新了“我能说什么”中的问题。它应该会起作用。也许有些转换器会失败。我建议创建可复制的小样本,并将问题发布到EF核心存储库。您是否尝试将查询更改为以下格式<代码>DbContext.Items.Where(x=>x.ItemId==ItemId).Where(x=>x.IsActive==true).toListSync()代码>-检查此项。请显示您的实体和DbContext定义。更新了“我能说什么”中的问题。它应该会起作用。也许有些转换器会失败。我建议创建可复制的小样本,并将问题发布到EF核心存储库。您是否尝试将查询更改为以下格式<代码>DbContext.Items.Where(x=>x.ItemId==ItemId).Where(x=>x.IsActive==true).toListSync()代码>-查看此项。
public class Item
{
#region Column Definitions
[Key]
public int Id { get; set; }
public int ItemId { get; set; }
public bool IsActive { get; set; }
#endregion
}