У меня есть проблема с ленивым поведения нагрузки в EntityFramework 5. Вот мои две моделиЛенивая загрузка в Entity Framework
public class Person {
[Key]
[Required]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public int? OfficeID { get; set; }
[ForeignKey("OfficeID ")]
public virtual Offices OfficeID_Offices { get; set; }
}
public class Offices
{
[Key]
[Required]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
//Navigation Properties
public virtual ICollection<Person> Person_OfficeID { get; set; }
}
Тогда у меня есть следующая функция в моем контроллере
[HttpPost]
public Person Read(int intID)
{
Person objData = (from obj in objDB.Persons
where obj.ID == intID && !obj.Deleted
select obj).FirstOrDefault();
}
Этот метод контроллера вызывается вызовом jquery $ .Ajax, который возвращает объект JSON. Поскольку мой внешний ключ OfficeID_Offices является виртуальным, я ожидаю, что его будет загружать только тогда, когда я требую его явно. Однако, когда я смотрю на мой возвращенный объект JSON, я вижу, что возвращается весь объект Office.
В моем DbContext включена функция Lazy loading, поэтому мне интересно, как я мог избежать возврата всего объекта Office.
Спасибо!
Что вы используете для просмотра объекта JSON? Потому что вы можете вызвать вызов в базу данных, чтобы захватить объект. Кроме того, он возвращает фактический объект или является динамическим прокси этого объекта? – IronMan84
Он возвращает фактический объект, поэтому представление JSON всех свойств Office – Sdupere