#c# #linq #linqpad
#c# #linq #linqpad
Вопрос:
Я тестирую некоторые запросы в программе, использующей 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’, потому что этот тип не включен в модель для контекста.
Затем я пытаюсь
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<T, TParams>(IQueryable, IQueryFilter<T, TParams>, TParams?)’ не может быть выведен из использования. Попробуйте явно указать аргументы типа.`
Это контекст, который я использую:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.ApplyConfiguration(new UserEntityTypeConfiguration());
}
Как правильно отформатировать мой запрос?
Комментарии:
1. Возможно ли для вас поделиться своим контекстом?
2. Я добавил контекст базы данных в свой пост. Я использую конфигурации для создания таблиц в базе данных.
Ответ №1:
Да, вы можете добавить Connection
(вверху слева) из linqpad и подключиться к своему dll
.
Вот документ, показывающий, как это сделать.
Когда вы используете Linqpad, вы фактически находитесь внутри объекта Context. Просто введите:
this.
и вы можете получить доступ к свойствам вашего ObejctContext.
(также: убедитесь, что вы используете «C # Statement»)
Комментарии:
1. Извините! Я забыл добавить две строки в верхней части моего запроса. Я уже ввел var context = this, и у меня все еще возникают проблемы. Я также использую инструкции C #.
2. в чем проблема