Buen día,

 

                Estoy tratando de desarrollar un soporte de especificaciones
[1], con la intención de que sirvan tanto para ser evaluadas directamente
como para ser utilizadas en el WHERE de una consulta de Linq to entities, es
decir:

 

(a)     if (pedidoPendienteRecepcionSpec.IsSatisfiedBy(unPedido)) …

 

                o también:

 

(b)     pedidosPendientes = (from p in repositorioPedidos

                                    where
pedidoPendienteRecepcionSpec.IsSatisfiedBy(p))

 

                Lo que ocurre, y es lógico, es que Linq to entities no sabe
traducir la llamada a la función IsSatisfiedBy() a TSQL. Lo que sí puedo
hacer es algo así:

 

          pedidosPendientes =
repositorioPedidos.Where(pedidoPendienteRecepcionSpec)

 

                porque sobrecargué en la especificación el operador de
conversión de tipos para que sea implícitamente convertible a
Expression<Func<Pedido, bool>>

 

                ¿Alguien sabe cómo puedo extender Linq to Entities para
poder incluir las llamadas a .IsSatisfiedBy() como muestro en (b)? 

Estoy usando Entity Framework Code-First.

 

                Gracias, saludos.

 

Diego Cepero.

 

[1] http://martinfowler.com/apsupp/spec.pdf

 

Responder a