J'ai créé une nouvelle application Entity Frameworks Code First et le DbSet (People) renvoie null.
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Repository : DbContext
{
public DbSet<Person> People;
}
web.config: chaîne de connexion
<connectionStrings>
<add name="Repository"
connectionString="Data Source=|DataDirectory|Repository.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
Maintenant, quand j'appelle
Repository _repo = new Repository()
_repo.People;
_repo.People
sera nul
Qu'est-ce qui me manque?
C'est parce que vous définissez un champ de DbSet<Person>
sur la classe Repository au lieu d'une propriété. Une fois que vous avez ajouté ou modifié une propriété pour en faire une propriété automatique, People
commencera à vous donner des valeurs au lieu de null. Il vous suffit donc de changer votre classe Repository en:
public class Repository : DbContext
{
public DbSet<Person> People { get; set; }
}
Je viens d'avoir le même problème. Le problème était que j'avais défini ces propriétés comme "internes" alors qu'elles devaient être "publiques". Juste au cas où quelqu'un chercherait encore :)
Je viens d'avoir le même problème. Le problème était que j'avais défini ces propriétés comme "internes" alors qu'elles devaient être "publiques". Juste au cas où quelqu'un chercherait encore :)
Je suppose que ces propriétés peuvent également être internes/publiques, si vous les utilisez comme ceci:
public class Repository : DbContext
{
internal DbSet<Person> People { get; set; }
public Repository()
{
//your code here...
People = Set<Person>();
}
}