Pregunta

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

pasos para reproducir

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):

public class MyTable { 
  public int MyTableId { get; set; } 
  public int SomeKey { get; set; } 
  public int MyFieldIntegerIWant { get; set; } 
} 

Detalles técnicos adicionales

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

Respuesta experta

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




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué