Источником этой ошибки является то, что ваша программа пытается «Ленивая загрузка» одного из свойств навигации на объекте вашего друга Friend, и это происходит, когда вы уже прочитали свойство FriendsInGoodStanding и объектный контекст былраспоряжаться, из-за использования заявления.
Теперь я вижу, что вы стремитесь загрузить aspnet_User1, а также вызываете ToList () в конце вашего запроса, поэтому это должно быть другое свойство навигации для объекта Friend .Если вы покажете клиентский код, который использует свойство FriendsInGoodStanding , то я могу точно сказать, что это такое, но пока что я догадываюсь, что у вас есть свойство aspnet_User в объекте Friend, которое также должно быть загружено какэто:
public partial class aspnet_User{
public List FriendsInGoodStanding {
get {
using (var context = new GarbageEntities()) {
var a = context.Friends
.Include("aspnet_User1")
.Include("aspnet_User")
.Where(f => f.UserID == this.UserId && f.Blocked == false).ToList();
var b = context.Friends
.Include("aspnet_User")
.Include("aspnet_User1")
.Where(f => f.FriendUserID == this.UserId && f.Blocked == false).ToList();
a.AddRange(b);
return a.Distinct().ToList();
}
}
}
}
Другое решение:
будет отключить отложенную загрузку , чтобы контекст вашего объекта покончил с этимисключение.Вы можете сделать это, щелкнув правой кнопкой мыши на своей модели и затем выбрав свойства, а затем найдите параметр «Ленивая загрузка включена», который по умолчанию имеет значение true, просто установите для него значение false.Или программно вы можете кодировать:
var context = new GarbageEntities();
context.ContextOptions.LazyLoadingEnabled = false;
Как только он отключен, вы все равно можете явно загружать связанные данные по требованию, если это необходимо, или даже загружать данные вместе с первоначальным запросом.Просто следите за NullReferenceException!