2012-04-24 3 views
2

Пытаемся нетерпеливой нагрузка некоторых дочерних объектов, как так:Нетерпеливых нагрузки Entity Framework ошибка навигация

_context.Sites.Where(x => x.ID == siteID).Include(s => s.SiteLoggers).FirstOrDefault(); 

Однако ошибка я получаю:

A specified Include path is not valid. The EntityType 'MyProject.Dal.EF.Site' does not declare a navigation property with the name 'SiteLoggers'. 

Что сказать, правильно, поскольку MyProject.Dal.EF.Site не существует, объект существует в MyProject.Domain.Entities.Site

Что мне не хватает ??? Благодаря!

POCO которые:

namespace MyProject.Domain.Entities 
{ 
    public class Site 
    { 
     public int ID { get; set; } 
     public int LocationID { get; set; } 
     public bool Active { get; set; } 
     public bool Deleted { get; set; } 
     public string Name { get; set; } 
     public virtual Location Location { get; set; } 
     public virtual IEnumerable<SiteLogger> SiteLoggers { get; set; } 
    } 
} 

namespace MyProject.Domain.Entities 
{ 
    public class SiteLogger 
    { 
     public int ID { get; set; } 
     public int UID { get; set; } 
     public int SiteID { get; set; } 
     public string Name { get; set; } 
     public int LocationID { get; set; } 
     public bool Active { get; set; } 
     public bool Deleted { get; set; } 
     public virtual Site Site { get; set; } 
     public virtual Location Location { get; set; } 
    } 
} 

ответ

3

Вы должны использовать ICollection вместо IEnumerable, потому что EF требует, чтобы ваши навигационные свойства определяются как ICollection<T>.

public virtual ICollection <SiteLogger> SiteLoggers { get; set; } 
+0

Great! Благодаря! Это объясняло бы и другое странное поведение! Должен был приехать сюда сначала, прежде чем тратить полдня на трал в сети. – Matt

Смежные вопросы