Я работаю с EF Core. У меня есть структура таблицы, подобная этой:
public class User
{
public User()
{
this.Projects = new HashSet<Project>();
}
[Key]
public int Id { get; set; }
public string name { get; set; }
public string emailId { get; set; }
public virtual ICollection<Project> Projects { get; set;}
}
public class Project
{
public Project()
{
this.TimeSheetData = new HashSet<TimeSheetData>();
}
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int userId { get; set; }
[ForeignKey("userId")]
public virtual User User {get; set; }
public virtual ICollection<TimeSheetData> TimeSheetData { get; set;}
}
public class TimeSheetData
{
[Key]
public int id { get; set; }
public int project_id { get; set; }
[ForeignKey("project_id")]
public virtual Project Project {get; set; }
public string hours_logged { get; set; }
}
------------
public List<User> GetTimeSheet(int userid)
{
var data = _context.Users.Include(u => u.Projects)
.ThenInclude(p => p.TimeSheetData)
.AsNoTracking()
.Where(a => a.Id == userid)
.ToList();
return data;
}
, которая возвращает:
[
{
"id": 101,
"name": "Niranjan",
"emailId": "godbole.niranjan@gmail.com",
"projects": [
{
"id": 1,
"name": "Niranjan",
"userId": 101
Этот объект не включает данные расписания. Но когда я отлаживаю, мои данные, возвращенные из запроса, показывают все данные. Так что мне нужно изменить свою таблицу пользователей, чтобы она соответствовала данным расписания, но таблица пользователей содержит проекты, которые в свою очередь содержат расписание.
Может кто-нибудь помочь мне разобраться?