¿Por qué mi nula DbContext DbSet?
-
28-09-2019 - |
Pregunta
He creado un nuevo Código de entidad Marcos primera aplicación y la DbSet (personas) está devolviendo un valor nulo.
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Repository : DbContext
{
public DbSet<Person> People;
}
web.config : cadena de conexión
<connectionStrings>
<add name="Repository"
connectionString="Data Source=|DataDirectory|Repository.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
Ahora cuando llamo
Repository _repo = new Repository()
_repo.People;
_repo.People
será nulo
¿Qué me falta?
- Microsoft.Data.Entity.Ctp.dll es referenciada
- He tratado con y sin inicializador base de datos.
Solución
Esto se debe a que definen un campo de la clase DbSet<Person>
repositorio en lugar de un propiedad . Una vez que se agrega una propiedad o la cambia a ser una propiedad automática, People
comenzará a dar valores en lugar de null. Así que todo lo que necesita hacer es cambiar su clase repositorio a:
public class Repository : DbContext
{
public DbSet<Person> People { get; set; }
}
Otros consejos
Sólo tenía el mismo problema. El problema fue que me puse estas propiedades como 'interno', mientras que debe haber sido 'público'. Por si alguien todavía está buscando:)
Sólo tenía el mismo problema. El problema fue que me puse estas propiedades como 'interno', mientras que debe haber sido 'público'. Por si alguien todavía está buscando:)
supongo, estas propiedades puede ser interna / pública también, si se utilizan de esta manera:
public class Repository : DbContext
{
internal DbSet<Person> People { get; set; }
public Repository()
{
//your code here...
People = Set<Person>();
}
}