【发布时间】:2020-08-18 18:10:17
【问题描述】:
我正在使用 Linqpad6 的程序中测试一些查询。这是我要测试的查询。
var context = this;
var parameters = new UserQueryParameters();
var query = context.Set<UserEntity>()
.AsNoTracking()
.Filter(new UserQueryFilter(), parameters)
.GroupBy(x => x.Name, x => x)
.Select(x => x.Key ?? string.Empty)
.OrderBy(x => x)
.Paginate(parameters)
.ConfigureAwait(false);
当我尝试运行它时,我得到了错误
无法为“UserEntity”创建 DbSet,因为该类型不是 包含在上下文模型中。
那我试试
var context = this;
var parameters = new UserQueryParameters();
var query = context.Users
.AsNoTracking()
.Filter(new UserQueryFilter(), parameters)
.GroupBy(x => x.Name, x => x)
.Select(x => x.Key ?? string.Empty)
.OrderBy(x => x)
.Paginate(parameters)
.ConfigureAwait(false);
但这会产生错误:
方法'QueryExtensions.Filter
(IQueryable, IQueryFilter , TParams?)' 不能 从用法推断。尝试指定类型参数 明确的。`
这是我正在使用的上下文:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.ApplyConfiguration(new UserEntityTypeConfiguration());
}
格式化查询的正确方法是什么?
【问题讨论】:
-
您可以分享您的上下文吗?
-
我在帖子中添加了数据库上下文。我正在使用配置在数据库中制作表格。