У меня есть некоторые проблемы, у меня есть Route entites, у которых есть два свойства: Node StartNode и второй Node StartNode.Начальный узел и конечный узел должны иметь связь с маршрутом, но когда я пытаюсь это сделать, я получаю исключение: Cannot create a relationship between 'Node.Route' and 'Route.EndNode', because there already is a relationship between 'Node.Route' and 'Route.StartNode'. Navigation properties can only participate in a single
relationship.
Узлы маршрута имеют два объекта Node, представляющих начальную и конечную точки:
public class Route
{
public Guid DailyRouteId { get; set; }
public DailyRoute DailyRoute { get; set; }
public Node StartNode { get; protected set; }
public Node EndNode { get; protected set; }
public Guid EndNodeId { get; set; }
public Guid StartNodeId { get; set; }
}
Узел завлекает:
public class Node
{
[Key]
public Guid Id { get; set; }
public string Address { get; protected set; }
public double Longitude { get; protected set; }
public double Latitude { get; protected set; }
public DateTime UpdatedAt { get; protected set; }
public Route Route { get; set; }
}
А это модельщик:
modelBuilder.Entity<Route>()
.HasOne(x => x.StartNode)
.WithOne(x => x.Route)
.HasForeignKey<Route>(x => x.StartNodeId)
.OnDelete(DeleteBehavior.Restrict);
modelBuilder.Entity<Route>()
.HasOne(x => x.EndNode)
.WithOne(x => x.Route)
.HasForeignKey<Route>(x => x.EndNodeId)
.OnDelete(DeleteBehavior.Restrict);