Мой вопрос может быть немного конкретнее c, и я только изучаю EF Core. У меня есть два класса. tblBuilding и tblBuildingHour. Простые занятия. Не возражайте против соглашения об именах таблиц. Это устаревшая база данных. Это работает нормально, если я удаляю свойства навигации. Что мне не хватает? Что мне нужно сделать для настройки прокси Castle? Это составные ключи? Это ленивая загрузка свойства навигации? Я в тупике.
public class tblBuilding {
public int ID {get;set;}
public string Name {get;set;}
public virtual ICollection<tblBuildingHour> BuildingHours {get;set;}
}
public class tblBuildingHour {
public int BuildingID {get;set;}
public DateTime BuildingHourDate { get;set; }
public DateTime StartTime {get;set;}
public DateTime EndTime {get;set;
public virtual Building Building {get;set;}
}
Ленивая загрузка сущностей в моем контексте БД.
services.AddDbContext<EMSDataContext>(options => options.UseLazyLoadingProxies()
.UseSqlServer(Configuration.GetSection(EmsDevDb).Value)
.UseLoggerFactory(_loggerFactory));
В dbContext я добавил отношение один ко многим.
modelBuilder.Entity<tblBuilding>()
.HasMany(b => b.BuildingHours)
.WithOne(r => r.Building)
.HasForeignKey(r => r.BuildingID);
Единственная странная вещь в этой таблице tblBuildingHour - это то, что она имеет составные ключи, так что я не знаю, в этом ли ее суть.
modelBuilder.Entity<tblBuildingHour>()
.HasKey(c => new { c.BuildingID, c.BuildingHourDate });
Мне было интересно, влияет ли на нее ленивая загрузка? Я пытался это безрезультатно.
https://www.learnentityframeworkcore.com/lazy-loading