#.net #entity-framework #asp.net-web-api
#.net #entity-framework #asp.net-web-api
Вопрос:
У меня есть вложенные модели, которые называются PositionLevel
, PositionLevelCompanyLookup
Company
, CompanySub
GetDetail
. Я хочу получить все данные моделей в ThenInclude
функции с помощью,,. Но все данные модели не были получены, и я не мог видеть причины для этого.
Как мне это сделать?
public class PositionLevel : DynexModel
{
public string Description { get; set; }
[JsonIgnore]
public List<PositionLevelCompanyLookup> Companies { get; set; }
[NotMapped]
public virtual List<Company> CompanyList => this.Companies?.Select(p => p.Company).ToList();
}
public class PositionLevelCompanyLookup : DynexModel
{
public int PositionLevelId { get; set; }
public PositionLevel PositionLevel { get; set; }
public int CompanyId { get; set; }
public Company Company { get; set; }
}
public class Company : DynexModel
{
public string Name { get; set; }
[JsonIgnore]
public List<CompanySub> SubCompanies { get; set; }
[NotMapped]
public virtual List<Company> SubCompanyList => this.SubCompanies?.Select(p => p.SubCompany).ToList();
}
public class CompanySub : DynexModel
{
public int CompanyId { get; set; }
public Company Company { get; set; }
public int SubCompanyId { get; set; }
public Company SubCompany { get; set; }
}
public ActionResult<PositionLevel> GetDetail(int id)
{
var res = _context.Entity<PositionLevel>()
.Include(p => p.Companies)
.ThenInclude(p => p.Company)
.ThenInclude(p => p.SubCompanies)
.FirstOrDefault(p => p.Id == id);
return res ;
}
Ответ №1:
Я думаю, у вас проблема, есть [NotMapped]
тег на CompanyList
, я думаю, EF игнорирует main Include
и с ним ThenInclude
тоже попробуйте протестировать его, удалив [NotMapped]
тег.
Извините за мой английский.