С# DbSet - Внутренний объект нельзя получить
Мне нужно переключить сущность на внутреннюю. Поэтому я его создаю. Ошибка сборки/времени выполнения. Но когда я хочу использовать объект DbSet, я не могу, потому что объект кажется не инициализированным!
My ContextEntities:
public partial class Entities
{
internal DbSet<Employee> EmployeeSet { get; set; }
}
Я использую вот так:
Entities context = new Entities();
List<Employee> employees = context.EmployeeSet.ToList();
Но "EmployeeSet" имеет значение null. Я думаю, это потому, что он не создан в получении. Он работает, если я использую public следующим образом:
public partial class Entities
{
public DbSet<Employee> EmployeeSet { get; set; }
}
Вопросы:
Может ли он работать, если DbSet отмечен как внутренний? Если да, то как? Почему это нарушает его?
(спасибо Скотту Стаффорду)
Ответы
Ответ 1
Он не будет автоматически создан, если он не установлен на public
. Вы можете вручную создать его экземпляр с помощью метода Set<TEntity>()
.
public partial class Entities
{
internal DbSet<Employee> EmployeeSet { get; set; }
public Entities()
{
EmployeeSet = Set<Employee>();
}
}
Ответ 2
У меня была такая же проблема, и я смог ее исправить, установив геттер как internal
.
public partial class Entities
{
public DbSet<Employee> EmployeeSet { internal get; set; }
}