¿Cuál es la diferencia entre DbSet <> y virtual DbSet <>?
En Entity Framework Code First, cuando declaro entidades, tengo que usar el tipo de propiedades DbSet <> para eso. Por ejemplo:
public DbSet<Product> Products { get; set; }
public DbSet<Customer> Customers { get; set; }
Recientemente me encontré con DbSet <> declarado como virtual.
public virtual DbSet<Product> Products { get; set; }
public virtual DbSet<Customer> Customers { get; set; }
¿Cuál es la diferencia? ¿Qué funcionalidades EF están habilitadas?