Я пытаюсь получить некоторые данные из трех таблиц базы данных в виде. Поэтому я использую класс, где я включаю два других класса со списком.invalidoperationexception on actionresult
Один из этих двух включенных классов работает нормально, а другой вызывает InvalidOperationException в контроллере ActionResult.
Это то, что я до сих пор производится:
Классы
namespace ArrangeAppointments.Models
{
public class Appointment : IAppointment
{
#region Implementation of IAppointments
public int UserId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Duration { get; set; }
public virtual List<Invitee> Invitees { get; set; }
public virtual List<Occasion> Occasions { get; set; }
#endregion
public int AppointmentId { get; set; }
namespace ArrangeAppointments.Models
{
public class Invitee : IInvitee
{
public int Id { get; set; }
public int AppointmentId { get; set; }
public string Email { get; set; }
public string Presence { get; set; }
public virtual Appointment Appointment { get; set; }
namespace ArrangeAppointments.Models
{
public class Occasion : IOccasion
{
public int Id { get; set; }
public int AppointmentId { get; set; }
public DateTime ocDate { get; set; }
public DateTime ocTime { get; set; }
public string Location { get; set; }
public virtual Appointment Appointment { get; set; }
ActionResult
[HttpGet]
public ActionResult NewApp(int Id)
{
if (Id == 0)
{
return View();
} else {
try
{
using (var db = new MainDbContext())
{
Appointment appointment = db.Appointments.Find(Id);
if (appointment == null)
{
return HttpNotFound();
}
else
{
return View("NewApp", appointment);
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.InnerException);
return View();
}
}
}
Объект 'назначение' в ActionResult заполнена всеми необходимыми данными, за исключением Список для случая. Это вызывает исключение. Однако это исключение не вызывает событие catch.
В чем причина этого исключения?
DbContext класс
namespace ArrangeAppointments
{
public class MainDbContext : DbContext
{
public MainDbContext() : base("name=DefaultConnection")
{
}
public DbSet<User> Users { get; set; }
public DbSet<Appointment> Appointments { get; set; }
public DbSet<Invitee> Invitees { get; set; }
public DbSet<Occasion> Occasions { get; set; }
}
}
где это бросить исключение? вы используете ленивую загрузку, покажите нам класс dbcontext – Thorarins
Я еще добавил класс DbContext. – wintee
Единственный способ, которым я вижу исключение, - это проверить содержимое объекта «назначение» при отладке ActionResult. – wintee