我正在尝试从实体框架获取带有参数的查询字符串以进行调试。不,我不会使用 EFProfiler,因为查询字符串需要在页面上作为输出可见。大多数查询是使用 ExecuteStoredQuery() 手动编写的。但是,将它们转换为 ObjectQuery 会产生 null。
例子:
ObjectResult<Parent> model = _context.ObjectContext().ExecuteStoreQuery<Parent>("SELECT * FROM Parents");
var objectQuery = model.AsQueryable() as ObjectQuery<Parent>;
对象查询为空。ObjectContext() 是 datacontext 中的一个简单方法,如下所示:
return (this as IObjectContextAdapter).ObjectContext;
我已经用尽了自己的想法,从搜索中得到的任何东西都是……好吧,没用,因为似乎没有人能解决这个问题。请注意,结果从查询中正确返回。
编辑:对,我也应该提到这一点。
这样做:
var oq = m as ObjectQuery<Parent>;
给我这个:
无法通过引用转换、装箱转换、拆箱转换、包装转换或空类型转换将类型“System.Data.Objects.ObjectResult”转换为“System.Data.Objects.ObjectQuery”
当我认为它需要被转换为 AsQueryable() 的时候,它,嗯……是空的,原因很明显。是我疲倦的脑袋忘记添加这个小细节了。