实体框架Many To Many返回null

时间:2015-01-05 15:40:39

标签: entity-framework entity-framework-4 entity-framework-4.1

我定义了Many To Many关系,当我尝试查询应该在地图中的记录时,我得到null。

    public class Record
    {
        public int RecordId { get; set; }
        public DateTime DateRecordCreated { get; set; }

        public ICollection<Street> Streets { get; set; }
        public ICollection<Street> CrossStreets { get; set; } 
    }


    public class RecordMap : EntityTypeConfiguration<Record>
    {
        public RecordMap()
        {
            // Primary Key
            this.HasKey(t => t.RecordId);



            this.HasMany(r => r.Streets)
                .WithMany(c => c.Records)
                .Map(sl =>
                {
                    sl.ToTable("StreetRecordMap", "dbo");
                    sl.MapLeftKey("RecordId");
                    sl.MapRightKey("StreetId");
                });

            this.HasMany(r => r.CrossStreets)
                .WithMany(c => c.AnotherRecord)
                .Map(sl =>
                {
                    sl.ToTable("AnotherStreetRecordMap", "dbo");
                    sl.MapLeftKey("RecordId");
                    sl.MapRightKey("StreetId");
                });

            this.Property(t => t.DateRecordCreated).IsRequired();
        }
}


    public class House : Record
    {
        public string HouseNumber { get; set; }
        public string StreeName { get; set; }
        public int ZipCode { get; set; }

    }



    public class Street
    {
        public int StreetId { get; set; }
        public string StreetName { get; set; }

        public ICollection<Record> Records { get; set; }
        public ICollection<Record> AnotherRecord { get; set; } 
    }

现在,当我在下面运行以下查询时,我将houses.CrossStreets视为null,我尝试添加启用延迟加载并且具有相同的输出。

 public static void GetRecords()
    {
        using (var context = new SandboxContext())
        {

            var entities = context.Houses.Include(r => r.CrossStreets);

            var houses = entities.ToList();
        }
    }

0 个答案:

没有答案