问题描述
我正在使用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(),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());
}
解决方法
是的,您可以从linqpad添加一个Connection
(左上角)并连接到您的dll
。
这里doc向您展示了操作方法。
使用Linqpad时,实际上是在Context Object中。只需输入:
this.
,您可以访问ObejctContext上的属性。
(也:确保您使用“ C#语句”)