Ноль или один ко многим в Entity Framework - PullRequest
0 голосов
/ 06 сентября 2018

Моя ситуация такова: Сущность Периодической Задачи может иметь много Задач, но Задача может не иметь ни одной, или только Периодической Задачи, связанной с ней. То есть мне нужен нулевой внешний ключ Task Periodic для Task. Однако я не могу выполнить эту настройку через Entity Framework, даже с утверждением:

public int? PeriodicTaskID

Каковы возможные решения?

Большое спасибо.

public class Task
{
    public int TaskID { get; set; }

    public int? PeriodicTaskID { get; set; }

    public virtual PeriodicTask PeriodicTask { get; set; }
}

public class PeriodicTask
{
    public int PeriodicTaskID { get; set; }

    public virtual ICollection<Task> Tasks { get; set; }
}

1 Ответ

0 голосов
/ 06 сентября 2018

Вы можете определить отношение с помощью аннотаций данных следующим образом:

public class Task
{
    public int TaskID { get; set; }

    public int? PeriodicTaskID { get; set; }
    [ForeignKey("PeriodicTaskID ")]
    public virtual PeriodicTask PeriodicTask { get; set; }
}

через Fluent API;

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    //..
    modelBuilder.Entity<Task>()
        .HasOne(t => t.PeriodicTask)
        .WithMany(pt => pt.Tasks);
}
...