我尝试禁用LazyLoading,但是它不起作用。有人知道我在做什么错吗?我还将“虚拟”属性定义为非虚拟属性。 我在这里遵循了本教程:http://www.entityframeworktutorial.net/lazyloading-in-entity-framework.aspx
public partial class DataContext : DbContext
{
public DataContext()
: base("name=DataContext1")
{
this.Configuration.LazyLoadingEnabled = false;
}
public virtual DbSet<Category> Categories { get; set; }
public virtual DbSet<Payment> Payments { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Category>()
.HasMany(e => e.Payments)
.WithRequired(e => e.Category)
.WillCascadeOnDelete(false);
}
}
无论是否带有“虚拟”关键字,我都会遇到相同的错误(“类别”每次都是NULL):
答案 0 :(得分:0)
要关闭特定属性的延迟加载,请不要将其设置为虚拟,并且要关闭上下文中所有实体的延迟加载,只需将其配置属性设置为false。
考虑到这一点,看来您的代码已经关闭了上下文所有实体的延迟加载。