c# DbSet -无法获得内部对象

本文关键字:内部对象 DbSet | 更新日期: 2023-09-27 18:10:30

我需要将一个实体切换到内部。所以我创建了它。没有构建/运行时错误。但是当我想使用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:

public partial class Entities
{
   public DbSet<Employee> EmployeeSet { get; set; }
}

问题:如果DbSet被标记为内部,它能工作吗?如果有,那是怎么回事?为什么这会破坏它?(感谢Scott Stafford)

c# DbSet -无法获得内部对象

如果不设置为public,则不会自动实例化。您可以使用Set<TEntity>()方法手动实例化它。

public partial class Entities
{
   internal DbSet<Employee> EmployeeSet { get; set; }
   public Entities()
   {
       EmployeeSet = Set<Employee>();
   }
}

我刚刚遇到了同样的问题,并且能够通过仅将getter设置为internal来修复它。

public partial class Entities
{
   public DbSet<Employee> EmployeeSet { internal get; set; }
}