我需要将实体切换到内部。所以我创造了它。没有构建/运行时错误。但是当我想使用DbSet对象时,我不能,因为对象似乎没有初始化!
我的ContextEntities:
public partial class Entities
{
internal DbSet<Employee> EmployeeSet { get; set; }
}
我这样用:
Entities context = new Entities();
List<Employee> employees = context.EmployeeSet.ToList();
但“EmployeeSet”为空。我认为这是因为它没有在get中实例化。如果我像这样公开使用它是有效的:
public partial class Entities
{
public DbSet<Employee> EmployeeSet { get; set; }
}
问题: 如果DbSet标记为内部,它可以工作吗?如果是这样的话?为什么会破坏它? (感谢Scott Stafford)
答案 0 :(得分:24)
如果未设置为public
,则不会自动实例化。您可以使用Set<TEntity>()
方法手动实例化它。
public partial class Entities
{
internal DbSet<Employee> EmployeeSet { get; set; }
public Entities()
{
EmployeeSet = Set<Employee>();
}
}
答案 1 :(得分:2)
我遇到了同样的问题,只能将getter设置为internal
来修复它。
public partial class Entities
{
public DbSet<Employee> EmployeeSet { internal get; set; }
}