3
當實體類是內部時,可以強制實體框架延遲加載集合?所有的代碼都是先用代碼編寫的,流暢的API。我有這樣的情況:當實體是內部的時候,延遲加載不起作用
internal class Order
{
public int Id { get; set; }
public ICollection<Operation> Operations { get; set; }
}
internal class Operation
{
public int Id { get; set; }
public int OrderId { get; set; }
public Order Order { get; set; }
}
internal MyContext : DbContext
{
internal DbSet<Order> Orders { get; set; }
internal DbSet<Operation> Operations { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Operation>().HasRequired(x => x.Order)
.WithMany(x => x.Operations)
.HasForeignKey(x=>x.OrderId);
}
}
而我不明白爲什麼實體框架不會延遲加載操作集合。我在上下文中延遲加載true。有可能管理這個?
就這樣?在這個主題中有什麼解決辦法?我不明白爲什麼英孚團隊這樣做是正確的。 – CrazyBaran
因爲你在自定義程序集中定義了你的實體模型,所以EF肯定會使用反射來獲得你的模型類並創建代理類,它們是啓用延遲加載的代理類,就像你類的包裝器(從你的實體繼承),這就是爲什麼它需要'公共' – octavioccl
所以,也許我需要給InternalVisibleTo EntityFramework? – CrazyBaran