Why is my DbContext DbSet null?
Solution 1
That's because you define a field of DbSet<Person>
on Repository class instead of a property. Once you add a property or change it to be a automatic property,People
will start to give you values instead of null. So all you need to do is to change your Repository class to:
public class Repository : DbContext
{
public DbSet<Person> People { get; set; }
}
Solution 2
I just had the same issue. The problem was that I did set these properties as 'internal' while they must have been 'public'. Just in case someone is still searching :)
Solution 3
I just had the same issue. The problem was that I did set these properties as 'internal' while they must have been 'public'. Just in case someone is still searching :)
I guess, these properties can be internal/public too, if you use them like this:
public class Repository : DbContext
{
internal DbSet<Person> People { get; set; }
public Repository()
{
//your code here...
People = Set<Person>();
}
}
Jamey McElveen
I am a Christian, I have three boys, Jake, Slater, Seth and a beautiful wife Connie. Application developer using primarily .NET/C#. I am using Objective-C for iPhone development. In the past I have also developed in Java, and Delphi.
Updated on July 09, 2022Comments
-
Jamey McElveen almost 2 years
I created a new Entity Frameworks Code First app and the DbSet (People) is returning null.
public class Person { public int Id { get; set; } public string Name { get; set; } } public class Repository : DbContext { public DbSet<Person> People; }
web.config: connection string
<connectionStrings> <add name="Repository" connectionString="Data Source=|DataDirectory|Repository.sdf" providerName="System.Data.SqlServerCe.4.0"/> </connectionStrings>
Now when I call
Repository _repo = new Repository() _repo.People;
_repo.People
will be nullWhat I am missing?
- Microsoft.Data.Entity.Ctp.dll is referenced
- I have tried with and without a database initializer.