Я получаю следующую ошибку:
Невозможно добавить начальную сущность для типа сущности 'JobAccessLevel', поскольку для обязательного свойства PersonId не было предоставлено значение.
И, похоже, это вызвано попыткой заполнить базу данных PersonId = null. (но это именно то, что я хочу сделать)
Как я могу решить эту проблему?
Контекст моей проблемы:
Давайте представим, что яЯ хочу, чтобы что-то было защищено на основе PersonId и работы лиц, но я хочу иметь общий рычаг доступа для определенной работы, но определенные уровни доступа для человека в данной работе.
Для управления этим ясоздал следующую сущность для хранения в базе данных:
public class JobAccessLevel
{
public int JobId { get; set; }
public int? PersonId { get; set; }
public int AccessLevelId { get; set; }
public AccessLevel AccessLevel { get; set; }
}
Поэтому, когда PersonId имеет значение null, я все еще могу использовать уровень доступа.
Файл конфигурации для создания этой сущности в базе данныхэто так:
public void Configure(EntityTypeBuilder<JobAccessLevel> builder)
{
builder.Property(JobAccessLevel=> JobAccessLevel.JobId ).ValueGeneratedNever();
builder.Property(JobAccessLevel=> JobAccessLevel.PersonId ).ValueGeneratedNever();
builder.HasKey(JobAccessLevel=> new { JobAccessLevel.JobId , JobAccessLevel.PersonId });
builder.HasData(new List<JobAccessLevel>
{
new JobAccessLevel
{
JobId = 1,
AccessLevel= 2,
PersonId = null
},
new JobAccessLevel
{
JobId = 2,
AccessLevel= 1,
PersonId = null
},
new JobAccessLevel
{
JobId = 2,
AccessLevel= 2,
PersonId = 3
}
});
}
пс: я получаю эту ошибку при попытке создать новую миграцию