我正在和我一起工作
Visual Studio 2017 Express,
ASP.NET Core 1.1
EntityFramework 1.0.0,
Microsoft .Net Framework 4.7.02046,
SQL Server 2012 LocalDB
我在app& amp; DB开发。我是这个技术的新手。我读了很多文档&课程提供良好的体验。现在我开发我的第一个真正的应用 我为我的英语道歉。
问题 有4个表: [关系] [1]
1)这项工作正常:让我显示一份Paciente列表,其中包含每个的Reserva列表。
public async Task<IActionResult> Details(int? id)
{
if (id == null)
{
return NotFound();
}
var paciente = await _context.Pacientes
.Include(p => p.Reservas)
.AsNoTracking()
.SingleOrDefaultAsync(m => m.PacienteID == id);
if (paciente == null)
{
return NotFound();
}
return View(paciente);
}
2)这会产生运行时错误: SqlException:无效的对象名称'ProfesionalPorReserva'。
public async Task<IActionResult> Details(int? id)
{
if (id == null)
{
return NotFound();
}
var profesional = await _context.Profesionales
.Include(p => p.ProfesionalPorReservas) //this line is the problem
.AsNoTracking()
.SingleOrDefaultAsync(m => m.ID == id);
if (profesional == null)
{
return NotFound();
}
return View(profesional);
}
3)同样的问题2) SqlException:无效的对象名称'ProfesionalPorReserva'。
public async Task<IActionResult> Details(int? id)
{
if (id == null)
{
return NotFound();
}
var reserva = await _context.Reservas
// .Include(r => r.ProfesionalPorReservas)
.AsNoTracking()
.SingleOrDefaultAsync(m => m.ReservaID == id);
if (reserva == null)
{
return NotFound();
}
return View(reserva);
}
我解决了添加的问题,因为消化了智能感知:
var reserva = await _context.Reservas
.Include(r => r.ProfesionalPorReservas)
.ThenInclude( navigationPropertyPath: p => p.Profesional)
.Include(r => r.ProfesionalPorReservas)
.ThenInclude(navigationPropertyPath: r => r.Rol)
.AsNoTracking()
.SingleOrDefaultAsync(m => m.ReservaID == id);
添加 navigationPropertyPath:是解决方案。