Привет. Такая проблема: Делаю REST API в .net web api & Entity Framework 6, базовые выводы из 1 таблицы сделал, а как правильно скомпоновать эти таблицы, не по ключевому полю ID не могу понять.
1 модель/таблица - пользователи
У пользователя могут быть подпользователи т.е каждый пользователь имеет параметр parent_id помимо своего id.
2 модель/таблица - автомобили
Тут есть поле user_id, т.е авто может быть закрепленно только за 1 юзером.
Задача такая: Нужно зная свой user_id, найти всех своих подпользователей и их авто.
Т.е что-то типа: Возьми из таблицы юзеров, пользователей у которых parent_id == моему id и добавь автомобили с таблицы авто, если id (пользователя) == user_id (из таблицы авто).
Т.е на выходе должен получится массив объектов юзеров, внутри которых массив из объектов автомобилей. (Т.к к 1 человеку может быть привязано несколько авто).
Я так понял что нужно создать еще одну модель. Я создал такую:
public class UserCars
{
public int Id { get; set; }
[Required]
public int ParentId { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string FirstName { get; set; }
public string SecondName { get; set; }
public string Surname { get; set; }
public int UserId { get; set; }
public Car Car { get; set; }
}
И соответственно контроллер, у меня получился такой:
// GET: api/CarChildrens/5
[ResponseType(typeof(UserCars))]
public async Task<IHttpActionResult> GetUserCars(int id)
{
var usersCar = await db.UserCars.Where(x => x.ParentId == id).Include( x => x.Car.UserId == x.UserId).ToListAsync();
if (usersCar == null)
{
return NotFound();
}
return Ok(usersCar);
}
Но приходит пустой массив. Как можно продебажить запрос к бд и в чем ошибка? Спасибо.