estoy unidad de código de prueba escrita contra el .NET Framework Entidad ADO. Me gustaría rellenar una base de datos en memoria con filas y asegurarme de que mi código las recupere correctamente.¿Hay un proveedor en memoria para Entity Framework?
que pueden burlarse de los Entity Framework utilizando burla de Rhino, pero eso no sería suficiente. Diría la consulta qué entidades me devolverán. Esto tampoco probaría la cláusula where ni las sentencias .Include(). Quiero estar seguro de que mi cláusula where coincide solo con las filas que intento, y no con otras. Quiero estar seguro de haber pedido las entidades que necesito, y ninguna que no tenga.
Por ejemplo:
class CustomerService
{
ObjectQuery<Customer> _customerSource;
public CustomerService(ObjectQuery<Customer> customerSource)
{
_customerSource = customerSource;
}
public Customer GetCustomerById(int customerId)
{
var customers = from c in _customerSource.Include("Order")
where c.CustomerID == customerId
select c;
return customers.FirstOrDefault();
}
}
Si me burlo del ObjectQuery para volver a un cliente conocido poblado de órdenes, ¿cómo sé que a Cliente tiene el derecho cláusula where e Incluir? Preferiría insertar algunas filas de clientes y algunas filas de pedidos, y luego afirmar que se seleccionó al cliente correcto y que los pedidos se completaron.
Al igual que terminaste haciendo, he utilizado interfaces para seguir el Patrón de repositorio y el patrón de Unidad de trabajo. Entonces, tengo dos espacios de nombres -> EF y Fake. Con mi repositorio falso, acabo de utilizar IList para almacenar mis cosas y aprovechar Linq a los objetos para extraer los datos. Funciona muy bien :) –
EntityFramework 7 tiene el proveedor InMemoery ahora. Aún beta como comentario pero si te suscribes al nuget nocturno puedes obtenerlo. – ppumkin