16

我正在使用 Code First EntityFramework ( version="6.1.0") 和 EntityFramework.Extended (version="6.1.0.96, the latest build of the moment from here。公开的
访问方式如下:DbContextDbSets

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 编译器遇到内部限制。

堆栈跟踪潜水告诉我:

在 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 源)

在 c:\Users\...\App\Program.cs:line 25 中的 App.Program.Main(String[] args)

我真的不知道我错过了什么。我检查了我ConnectionStringMultipleResultSets设置为TRUE.
我已经用早期的构建版本对此进行了测试,EF.Exteneded但发生了同样的错误。

任何想法都会有很大帮助。

4

2 回答 2

0

所以一年后加起来;将实体框架更新到最新版本 6.1.3,安装了最新的EntityFramework.Extended库,需要注意的一点是我使用“数据库优先”方法进行测试,一切正常。那时可能是我无法控制的其他奇怪的东西。

感谢大家对这个的支持。

于 2015-09-12T08:16:43.340 回答
0

可能是错的,但我认为

ctx.Set<User>() 

返回一个 DBSet 而 .Future() 应该在查询结束时使用。也许如果您将 .AsQueryable 附加到 ctx.Set() 的末尾?

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

另外,我认为如果您以这种方式构建了 EF 数据库,则可以使用 ctx.users 。

于 2015-09-10T19:43:02.207 回答