2

私は次のようないくつかの子エンティティを熱心にロードしようとしています:

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

1 に答える 1

3

EFではナビゲーションプロパティが次のように定義されている必要があるため、ICollectionの代わりにを使用する必要があります。IEnumerableICollection<T>.

 public virtual ICollection <SiteLogger> SiteLoggers { get; set; }
于 2012-04-24T04:42:17.983 に答える