related - sqlquery c# entity framework




EntityFramework.Extended Future error(limitación interna del compilador JIT) (2)

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.


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.


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.





entity-framework-extended