Отображение отношений «один к одному» в ядре .Net - PullRequest
1 голос
/ 21 апреля 2019

Используя .Net Core EF, как мне сопоставить отношение «многие к одному»?

Я пытаюсь отобразить отношение «многие к одному».Все примеры, которые я вижу, предполагают, что вы сопоставляете отношение «один к одному» (т. Е. У Участника есть FK билета, а у билета FK аттестата), или они предполагают, что подчиненный объект будет содержать коллекцию основныхобъект.Пример, который я видел, был Order и OrderStatus.

. Order имеет FK OrderStatus.Но чтобы отобразить отношение в .Net, они имели OrderStatus с аннотацией List<Order> и [ForeignKey], указывающими на Орден.

Это кажется глупым.Что бы я хотел, чтобы OrderStatus знал обо ВСЕХ Orders, которые имеют этот статус ???

Пример:

class Order {
    long orderId;
    OrderStatus status;
    ...
}

class OrderStatus {
   long orderStatusId;
   String code;
   String description;
   int severityLevel;
   ...
}

В базе данных таблица Порядка будет иметьСтолбец FK, содержащий orderStatusId.

Как сделать для этого простое сопоставление "многие к одному"?

1 Ответ

1 голос
/ 21 апреля 2019

Что бы я хотел, чтобы OrderStatus знал обо ВСЕХ Заказах с таким статусом ???

Да!возможный!.напишите классы вашей модели следующим образом:

public class OrderStatus 
{
   [Key]
   public long orderStatusId { get; set; }
   public string string code { get; set; }
   public string description { get; set; }
   public int severityLevel { get; set; }
   ...........

}

public class Order 
{
    [Key]
    public long orderId { get; set; }

    [ForeignKey("OrderStatus")]
    public long orderStatusId { get; set; }
    ..........

    public OrderStatus OrderStatus { get; set; }
}

Затем в запросе:

var orders =  _dbContext.Orders.Where(o => o.orderStatusId == 1).ToList(); // <-- Here is all the Orders with statusId '1'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...