c#DbSet – 无法获取内部对象

我需要将实体切换到内部。 所以我创造了它。 没有构建/运行时错误。 但是当我想使用DbSet对象时我不能,因为对象似乎没有初始化!

我的ContextEntities:

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

我这样用:

 Entities context = new Entities(); List employees = context.EmployeeSet.ToList(); 

但“EmployeeSet”为空。 我认为这是因为它没有在get中实例化。 如果我像这样使用public,它可以工作:

 public partial class Entities { public DbSet EmployeeSet { get; set; } } 

问题:如果DbSet标记为内部,它可以工作吗? 如果是这样的话? 为什么会破坏它? (谢谢Scott Stafford)

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

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

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

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