EntityFramework.Extended Будущая ошибка (внутреннее ограничение JIT-компилятора)

Я работаю с Code First EntityFramework (version="6.1.0") и EntityFramework.Extended(version = "6.1.0.96, последняя сборка на данный момент от здесь.
DbContext предоставляет DbSets, к которому обращаются, как:

var set = ctx.Set<MyEntity>();

Сегодня я решил попробовать "Будущие запросы" в библиотеке EntityFramework.Extended, и закончился довольно скоро, без представления о том, как действовать.

Вот пример кода:

using (var ctx = new MyDbContext())
{              
    var u = ctx.Set<User>().Future();
    var c = ctx.Set<Country>().Future();
    var users = u.ToList();
}

Что касается документации Future(), я должен получить только один запрос к БД, который предоставляет метод Future(). Запрос должен быть запущен в u.ToList();, но происходит то, что я получаю такую ​​ошибку:

JIT Compiler обнаружил внутреннее ограничение.

Сканирование трассировки стека сообщает мне следующее:

в EntityFramework.Future.FutureQueryBase 1.GetResult()

в EntityFramework.Future.FutureQuery 1.GetEnumerator()

в System.Collections.Generic.List 1..ctor(коллекция IEnumerable 1)

в System.Linq.Enumerable.ToList [TSource] (источник IEnumerable 1)

в App.Program.Main(String [] args) в c:\Users \...\App\Program.cs: строка 25

Я действительно не знаю, чего я упускаю. Я проверил, что мой ConnectionString имеет MultipleResultSets установлен на TRUE.
Я тестировал это с более ранними версиями сборки EF.Exteneded, но произошла одна и та же ошибка.

Любая идея очень поможет.

Ответы

Ответ 1

Итак, сложить через год; обновил платформу Entity Framework до последней версии 6.1.3, установил последнюю библиотеку EntityFramework.Extended, и одна вещь, которую следует отметить, это то, что я использовал первый подход "База данных" для теста, и все прошло нормально. Тогда мог бы быть и другой странный материал из моего контроля.

Спасибо всем за поддержку на этом.

Ответ 2

Может быть неправильно, но я думаю,

ctx.Set<User>() 

возвращает DBSet, тогда как .Future() предполагается использовать в конце запросов. Может быть, если вы добавите .AsQueryable в конец ctx.Set()?

ctx.Set<User>().AsQueryable().Future()

Также я думаю, вы можете просто использовать ctx.users, если у вас есть база данных EF, построенная таким образом.