c# - related - EntityFramework.Extended Future error(limitación interna del compilador JIT)
sql query ef core (2)
Así que para sumar después de un año más tarde; EntityFramework.Extended
Entity Framework a la última versión 6.1.3, instalé la última biblioteca EntityFramework.Extended
, y una cosa a tener en cuenta es que utilicé el enfoque "Base de datos primero" para la prueba y todo salió bien. Podría haber sido otra cosa extraña fuera de mi control entonces.
Gracias a todos por el apoyo en este caso.
Estoy trabajando con Code First EntityFramework ( version="6.1.0"
) y EntityFramework.Extended (version = "6.1.0.96, la última compilación en este momento desde here .
El DbContext
expone los DbSets
que se accede como:
var set = ctx.Set<MyEntity>();
Hoy decidí probar Future Queries of the EntityFramework.Extended library y terminé bastante pronto, sin una idea de cómo proceder.
Aquí está el código de ejemplo:
using (var ctx = new MyDbContext())
{
var u = ctx.Set<User>().Future();
var c = ctx.Set<Country>().Future();
var users = u.ToList();
}
Con respecto a la documentación de Future()
, debería obtener solo una consulta al DB, que es lo que proporciona el método Future()
. La consulta debe iniciarse en u.ToList();
pero lo que pasa es que me sale un error como este:
El compilador JIT encontró una limitación interna.
Una inmersión de seguimiento de pila me dice esto:
en EntityFramework.Future.FutureQueryBase 1.GetResult ()
en EntityFramework.Future.FutureQuery 1.GetEnumerator ()
en System.Collections.Generic.List 1..ctor (IEnumerable 1 colección)
en System.Linq.Enumerable.ToList [TSource] (fuente IEnumerable 1)
en App.Program.Main (String [] args) en c: / Users / ... / App / Program.cs: línea 25
Realmente no sé lo que me estoy perdiendo. He comprobado que mi ConnectionString
tiene MultipleResultSets
configurados en TRUE
.
He probado esto con versiones de compilación anteriores de EF.Exteneded
pero ocurrió el mismo error.
Cualquier idea sería de gran ayuda.
Podría estar mal, pero creo
ctx.Set<User>()
devuelve un DBSet, mientras que .Future () se supone que debe usarse al final de las consultas. Tal vez si agrega .AsQueryable al final de ctx.Set ()?
ctx.Set<User>().AsQueryable().Future()
También creo que puedes usar ctx.users si tienes tu base de datos de EF construida de esa manera.