Создание сущности ASP Net Core Entity Framework из разных таблиц - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь создать службу OData, используя Entity Framework для ASP.NET Core.

Прежде всего, я любезно знаком с Entity Framework, но я прочитал много статей, связанных с этой темой.,К сожалению, некоторые из них написаны не очень хорошо, и, кроме того, большинство из них не обновлено или отсутствует какая-либо ключевая информация.Итак, я собираюсь спросить вас.

Текущая ситуация:

Я пытаюсь создать модель, которая объединяет значения из двух источников данных источника данных.

Допустим, скажемУ нас есть класс Порядок и ст.Каждый заказ содержит кучу статей.Объекты могут быть сопоставлены свойством OrderID, которое хранится в Order и Article.

Таким образом, у нас есть два списка, содержащих каждый заказ и каждую строку статьи в контракте на заказ

  • Order1(0)
  • -> art1 (0) (0)
  • -> art2 (0) (1)
  • -> art3 (0) (2)
  • Order2 (1)
  • -> art1 (1) (0))

Конечно, у заказов и статей есть намного больше свойств, но в моем тестовом примере я просто хотел бы получить OrderID и названия соответствующих статей.

public class OrderList
{
    public int OrderID { get; set; }
    public List<string> Article { get; set; }
}

Я хочу создать новую модель под названием OrderList.В этой модели у меня есть OrderID и код списка статей (строка)

Я получаю данные из базы данных и мне нужно, чтобы они присоединились к моему новому объекту OrderList.

В настоящее времяЯ просто застрял, создав отношения сущностей.Ребята, у вас есть идея, чтобы решить эту проблему правильно?

  • ASP.NET Core 2.1
  • Microsoft.AspNetCore.OData (7.1.0)
  • Microsoft.EntityFrameworkCore(2.1.4)

1 Ответ

0 голосов
/ 14 января 2019

То, что вы хотите, реализуется через свойства навигацииСледуя соглашениям об именах , это так просто:

public class Order
{
    public int OrderId { get; set; } // primary key
    public List<Article> Articles { get; set; } // navigation property
}

public class Article
{
    public int ArticleId { get; set; } // primary key
    public string Name { get; set; }

    public int OrderId { get; set; } // foreign key
    public Order Order { get; set; } // navigation property
}


public MyDbContext : DbContext
{
    public DbSet<Order> Orders { get; set; }
    public DbSet<Article> Articles { get; set; }
}

var foo = ctx.Orders.Include(e => e.Articles).ToList();

Подробнее об этом можно прочитать здесь .

...