Я пытаюсь выбрать список целых чисел, и это вызывает исключение.
Сообщение об исключении: System.ArgumentException: выражение типа «System.Collections.Generic.IAsyncEnumerable1 [System.Int32]» не может использоваться для параметра типа «System.Collections.Generic.IAsyncEnumerable1 [System.Object]» метода «Система». Collections.Generic.IAsyncEnumerable1 [MyProject.Model.Entities.MyTable] CastModel 'Имя параметра: arg0
Модель
public class MyTable {
public int MyTableId { get; set; }
public int SomeKey { get; set; }
public int MyFieldIntegerIWant { get; set; }
}
Запустите запрос ниже (или один из них):
int keyId;
var ids = await context.MyTable.AsNoTracking()
.Where(x => x.SomeKey.Equals(keyId))
.Select(x => x.MyFieldIntegerIWant)
.ToListAsync();
Версия EF Core: 1.1.0
Поставщик базы данных: Microsoft.EntityFrameworkCore.SqlServer
Операционная система: Windows 7
IDE: Visual Studio 2015
ОБНОВИТЬ:
The issue had something to do with EF Plus' QueryFilters
https://github.com/zzzprojects/EntityFramework-Plus/issues/133
После обсуждения с @thejason,
Проблема не была вызвана Entity Framework Plus, а тем, как обрабатывать EF Core.
Эту проблему можно легко воспроизвести, используя следующий код:
using (var ctx = new CurrentContext())
{
int keyId = 1;
var ids = ctx.MyTables
.Cast<IMyTable>()
.Cast<MyTable>()
.Where(x => x.SomeKey.Equals(keyId))
.Select(x => x.MyFieldIntegerIWant)
.ToList();
}
Метод Cast будет зафиксирован в EF Core 2.x