预先加载实体框架导航属性错误



我正在尝试加载一些子实体,如下所示:

_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

我错过了什么???谢谢!

POCOs:

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; }
    }
}

需要使用 ICollection 而不是 IEnumerable ,因为 EF 要求将导航属性定义为 ICollection<T>.

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

相关内容

  • 没有找到相关文章

最新更新