Tengo un DBQuery<T>
que se convierte en IQueryable<T>
(este bit funciona bien). Pero entonces yo estoy tratando de convertir el IQueryable a un ObjectQuery .. lo que falla: -¿Cómo puedo convertir un DBQuery <T> en un ObjectQuery <T>?
public void Foo(this IQueryable<T> source)
{
// ... snip ...
ObjectQuery<T> objectQuery = source as ObjectQuery<T>;
if (objectQuery != null)
{
// ... do stuff ...
}
}
Esto solía trabajar antes de que cambiara a Entidad-Framework 4 CTP5 magia del unicornio, bla, bla, bla,. Ahora, no está funcionando, es decir. objectQuery
es null
.
Ahora, DBQuery<T> inherits IQueryable<T>
.. así que pensé que esto debería funcionar.
si cambio el código para ..
var x = (ObjectQuery<T>) source;
entonces la excepción siguiente: -
System.InvalidCastException: No se puede fundido objeto de tipo 'System.Data. Entity.Infrastructure.DbQuery
1[Tests.Models.Order]' to type 'System.Data.Objects.ObjectQuery
1 [Tests.Models.Order] '.
¿Alguna sugerencia?
¿Por qué necesita para su emisión a ObjectQuery? – anon
Creo que vas a necesitar un método que tome DBQuery y construya un ObjectQuery. Eso o una conversión explícita. Sin embargo, me doy cuenta de que uno de esos es un dolor. –
Esta es una pregunta interesante. DbQuery no tiene una relación directa con ObjectQuery, a diferencia de DbContext vs ObjectContext. Dudo que una conversión directa sea posible. De nuevo, deberías volver a examinar por qué necesitas el yeso en primer lugar. Además, ¿de dónde viene la "fuente"? – anon