我正在使用Code First EntityFramework(version="6.1.0"
)和EntityFramework.Extended(版本=" 6.1.0.96,此时的最新版本来自 here 。
DbContext
公开DbSets
,其访问方式如下:
var set = ctx.Set<MyEntity>();
今天我决定尝试使用EntityFramework.Extended库的Future Queries,很快就会结束,但不知道如何继续。
以下是示例代码:
using (var ctx = new MyDbContext())
{
var u = ctx.Set<User>().Future();
var c = ctx.Set<Country>().Future();
var users = u.ToList();
}
关于Future()
文档,我应该只向DB发出一个查询,这是Future()
方法提供的内容。该查询应该在u.ToList();
启动,但会发生的是我收到这样的错误:
JIT Compiler遇到内部限制。
堆栈跟踪潜水告诉我:
at EntityFramework.Future.FutureQueryBase 1.GetResult()
at EntityFramework.Future.FutureQuery 1.GetEnumerator()
在System.Collections.Generic.List 1..ctor(IEnumerable 1 collection)
在System.Linq.Enumerable.ToList [TSource](IEnumerable 1 source)
在c:\ Users \ ... \ App \ Program.cs中的App.Program.Main(String [] args):第25行
我真的不知道我错过了什么。我已检查过我的ConnectionString
MultipleResultSets
设置为TRUE
。
我已使用早期版本的EF.Exteneded
对此进行了测试,但发生了同样的错误。
任何想法都会有很大帮助。
答案 0 :(得分:0)
可能是错的,但我认为
ctx.Set<User>()
返回DBSet,而假设()应该在查询结束时使用.Future()。也许如果你将.AsQueryable追加到ctx.Set()的末尾?
ctx.Set<User>().AsQueryable().Future()
另外我认为你可以使用ctx.users,如果你有这样的EF数据库。
答案 1 :(得分:0)
一年后加起来;将实体框架更新到最新版本6.1.3,安装了最新的EntityFramework.Extended
库,需要注意的一点是我先使用了数据库&#39;测试方法一切顺利。那时候我可能还有其他奇怪的东西。
感谢大家对此的支持。