Jam*_*een 43 entity-framework code-first ef-code-first
我创建了一个新的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;
}
Run Code Online (Sandbox Code Playgroud)
web.config:连接字符串
<connectionStrings>
<add name="Repository"
connectionString="Data Source=|DataDirectory|Repository.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
现在我打电话的时候
Repository _repo = new Repository()
_repo.People;
Run Code Online (Sandbox Code Playgroud)
_repo.People 将为null
我错过了什么?
Mor*_*avi 67
那是因为你定义一个字段的DbSet<Person>在库类,而不是一个性质.添加属性或将其更改为自动属性后,People将开始为您提供值而不是null.所以你需要做的就是将你的Repository类更改为:
public class Repository : DbContext
{
public DbSet<Person> People { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我只是有同样的问题。问题是我确实将这些属性设置为“内部”,而它们必须是“公开的”。以防万一有人还在搜索:)
我想,这些属性也可以是内部/公共的,如果你像这样使用它们:
public class Repository : DbContext
{
internal DbSet<Person> People { get; set; }
public Repository()
{
//your code here...
People = Set<Person>();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20886 次 |
| 最近记录: |