【发布时间】:2012-06-28 20:08:31
【问题描述】:
我正在使用 CodeFirst 方法,但遇到了需要将 DbSet 转换为 ObjectQuery 的问题。 这就是我为转换所做的。
ObjectContext objectContext = ((IObjectContextAdapter)db).ObjectContext;
ObjectSet<Request> objectSet = objectContext.CreateObjectSet<Request>();
其中 db 是从 DbContext 继承的上下文,Request 是类。
所以,当我尝试调用期望 ObjectQuery 为 ObjectQueryMethod(objectSet) 的方法时,它会引发以下错误。
“由于'System.Data.Entity.DbSet'和'System.Data.Objects.ObjectQuery'之间没有隐式转换,无法确定条件表达式的类型”
非常感谢任何帮助!
【问题讨论】:
-
为什么需要将 DbSet 转换为 ObjectQuery?
-
提供更多详细信息 -
ObjectQueryMethod是什么?你目前的做法是正确的。您无法将DbSet转换为ObjectQuery。您必须创建ObjectSet并使用它而不是DbSet。 -
@Kittoes:我正在尝试在 JQGrid 中实现高级搜索,而 ObjectQuery 似乎是解析发送回服务器的参数(过滤器)的正确方法。
-
@LadislavMrnka:这只是一个期望 ObjectQuery 作为参数的方法(这样命名):)
-
感谢大家的宝贵时间。我发现我缺少什么,我需要将 DbSet("Requests") 作为 ObjectSet
objectSet = objectContext.CreateObjectSet 传递给 ObjectSet("Requests");
标签: entity-framework-4 linq-to-entities ef-code-first dbcontext