Estoy tratando de seleccionar una lista de enteros y está generando una excepción.
Mensaje de excepción: System.ArgumentException: Expresión de tipo 'System.Collections.Generic.IAsyncEnumerable1 [System.Int32]' no se puede usar para el parámetro de tipo 'System.Collections.Generic.IAsyncEnumerable1 [System.Object]' del método 'System. Collections.Generic.IAsyncEnumerable1 [MyProject.Model.Entities.MyTable] CastModel 'Nombre del parámetro: arg0
Modelo
public class MyTable {
public int MyTableId { get; set; }
public int SomeKey { get; set; }
public int MyFieldIntegerIWant { get; set; }
}
Ejecute la consulta a continuación (o una que le guste):
int keyId;
var ids = await context.MyTable.AsNoTracking()
.Where(x => x.SomeKey.Equals(keyId))
.Select(x => x.MyFieldIntegerIWant)
.ToListAsync();
Versión Core EF: 1.1.0
Proveedor de la base de datos: Microsoft.EntityFrameworkCore.SqlServer
Sistema operativo: Windows 7
IDE: Visual Studio 2015
ACTUALIZAR:
The issue had something to do with EF Plus' QueryFilters
https://github.com/zzzprojects/EntityFramework-Plus/issues/133
Después de la discusión con @thejason,
El problema no se debió a Entity Framework Plus, sino a cómo EF Core se maneja.
El problema se puede reproducir fácilmente usando el siguiente código:
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();
}
El método de lanzamiento se fijará en EF Core 2.x