2016-01-21 7 views
5

Wciąż otrzymuję następujący błądPowracanie obiektów podrzędnych za pomocą kodu Entity Framework first error: Nie można ocenić wyrażenia. Operacja nie jest obsługiwana. Nieznany błąd: 0x80070057

Unable to evaluate the expression. Operation not supported. Unknown error: 0x80070057

gdy próbuje powrócić do obiektu nadrzędnego i jego dzieci.

Baza danych kompiluje, nasiona i ma wszystkie relacje zdefiniowane poprawnie, o ile widzę. I zbudował mniejszy model tylko do badania oraz w celu pokazania problemu:

obiekt nadrzędny:

public class Person 
{ 
    [Key] 
    [Column(Order = 1)] 
    public int Id { get; set; }  

    [StringLength(100)]  
    public string Name { get; set; } 

    public DateTime DateModified { get; set; } 
    public DateTime DateCreated { get; set; } 

    public virtual ICollection<Job> Jobs { get; set; } 
} 

obiekt dziecka:

public class Job 
{ 
    [Key] 
    [Column(Order = 1)] 
    public int Id { get; set; } 

    [StringLength(100)] 
    public string Name { get; set; }  

    public int PersonId { get; set; } 

    [ForeignKey("PersonId")] 
    public virtual Person Person { get; set; } 
} 

powrocie _context.Person prace i zwraca listę osobę z pustymi zadaniami

Powracanie _context.Person.Include(o => o.Jobs) powoduje zgłoszenie powyższego błędu.

Wiem, że to proste rzeczy i tylko dwa bardzo proste stoły, ale nie widzę, gdzie leży problem, ponieważ stworzyłem ten model senario niezliczoną ilość razy bez problemu. Zastanawiam się nad odbudowaniem projektu i zależnościami EF, ale wolałbym zrozumieć ten problem i naprawić go, jeśli to możliwe.

Odpowiedz

1

Po dłuższego ciągnięcie za włosy, co następuje przezwyciężył problem:

repozytorium metodę _context:

public IQueryable<Person> GetPeople() 
    { 
     return _context.Person.Include(s => s.Jobs); 
    } 

kod wywołujący tylko wymagał ToList() metoda:

var people = _repository.GetPeople().ToList(); 

Zmienna people zawiera teraz listę obiektów osób, z których każda zawiera listę obiektów zadań. Pheeew !!