新しいEntity Frameworks Code Firstアプリを作成しましたが、DbSet(People)がnullを返しています。
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Repository : DbContext
{
public DbSet<Person> People;
}
web.config:接続文字列
<connectionStrings>
<add name="Repository"
connectionString="Data Source=|DataDirectory|Repository.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
今私が電話するとき
Repository _repo = new Repository()
_repo.People;
_repo.People
はnullになります
何が欠けていますか?
propertyの代わりに、RepositoryクラスでDbSet<Person>
の-fieldを定義しているためです。プロパティを追加するか、プロパティを自動プロパティに変更すると、People
はnullではなく値を提供し始めます。したがって、必要なことは、Repositoryクラスを次のように変更することだけです。
public class Repository : DbContext
{
public DbSet<Person> People { get; set; }
}
私は同じ問題を抱えていました。問題は、これらのプロパティが「パブリック」である必要がある一方で、「内部」として設定したことです。誰かがまだ検索している場合に備えて:)
私は同じ問題を抱えていました。問題は、これらのプロパティが「パブリック」である必要がある一方で、「内部」として設定したことです。誰かがまだ検索している場合に備えて:)
おそらく、これらのプロパティを次のように使用すれば、内部/パブリックにすることもできます。
public class Repository : DbContext
{
internal DbSet<Person> People { get; set; }
public Repository()
{
//your code here...
People = Set<Person>();
}
}