Получить данные из двух таблиц в ASP. NET Core - PullRequest
0 голосов
/ 01 мая 2020

Я создал 2 таблицы и 2 класса моделей, один для Lookups и другой для Lookup_Types.

Все операции CRUD и индексы для Lookup_Types в порядке, но затем мне нужно вернуть Lookup_name не Lookup_type_id.

Мои модели:

 public class Lookup_Type
 {
        [Key]
        public int Id { get; set; }

        [Required(ErrorMessage = "This field is required")]
        [StringLength(50, MinimumLength = 3,
         ErrorMessage = "Name Should be minimum 3 characters and a maximum of 50 characters")]
        public string Lookup_name { get; set; }
 }

public class Lookup
{
    [Key]
    public int Id { get; set; }

    [Required(ErrorMessage = "This field is required")]
    [StringLength(50, MinimumLength = 3,
        ErrorMessage = "Name Should be minimum 3 characters and a maximum of 50 characters")]
    public string Lookup_name { get; set; }

    public int Lookup_type_id { get; set; }
}

public async Task<IActionResult> GetAll()
{
   return Json(new { data = await _db.Lookups.ToListAsync() });
}

В GetAll(), мне нужно вернуть Lookup_name в Lookup_Type модели, а не Lookup_type_id

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Вы можете объединить две таблицы, но в таблице Lookup_Type имя должно измениться на Lookup_Type_name

 data = await from x in _db.Lookups
                             join y in db.Lookup_Type
                             on x.Lookup_type_id equals y.Id

                             select new
                             {
                                 Id = x.Id,
                                 Lookup_name = x.Lookup_name ,
                                 Lookup_Type_name = y.Lookup_Type_name

                             }
0 голосов
/ 01 мая 2020

Вот рабочая демонстрация:

public async Task<IActionResult> GetAll()
{
    var data =  from l in _context.Lookup
                join t in _context.Lookup_Type
                on l.Lookup_type_id equals t.Id

                select new
                {
                    l.Id,
                    l.Lookup_name,
                    Lookup_Type_name = t.Lookup_name
                };
    return Json(new { data = await data.ToListAsync() });         
}
...