C# 实体框架不';t延迟加载复杂类型
我在实体框架中遇到延迟加载问题。我有一些会员,他们定期登记,因此以下(简化)模型: 在这方面:C# 实体框架不';t延迟加载复杂类型,c#,entity-framework,lazy-loading,C#,Entity Framework,Lazy Loading,我在实体框架中遇到延迟加载问题。我有一些会员,他们定期登记,因此以下(简化)模型: 在这方面: public DbSet<Member> leden { get; set; } public DbSet<CheckIn> checkins { get; set; } 但那没用。有人知道为什么这样不行吗 对于延迟加载,您需要使用virtual关键字。在您的模型中: class CheckIn { public virtual Member member { get
public DbSet<Member> leden { get; set; }
public DbSet<CheckIn> checkins { get; set; }
但那没用。有人知道为什么这样不行吗 对于延迟加载,您需要使用
virtual
关键字。在您的模型中:
class CheckIn {
public virtual Member member { get; set; }
}
不可能延迟加载复杂类型:
请注意,在加载包含的实体实例时,EF始终会立即初始化的属性值。EF不支持对复杂类型进行延迟加载(如果您希望对实体的标量属性进行延迟加载,则也存在相同的限制)。当我们必须处理可能较大的值时(例如,Address复杂类型上类型为
byte[]
的属性,该属性已映射到Users表上的一列,并保存由地址描述的位置的图像),这就很不方便了
解释一下
为什么会很好,这样他(和其他读者)就会明白为什么这是必要的。啊,我的问题不清楚,我已经这么做了,但这似乎没有帮助,很遗憾……你是如何配置地图的?你是什么意思?我应该在这里应用什么样的映射,因为它是1…1成员身份?如果您首先使用代码,您必须通过数据注释和fluent API在实体和数据库表之间进行映射,我猜您使用的是fluent API?老实说,我不知道我必须使用fluent API来实现这一点,我假设它“正常工作”,因为如果我使用一对多关系,它也可以工作。请看一下这个表拆分和延迟加载复杂类型
IQueryable<CheckIn> Checkins = db.checkins;
db.Configuration.LazyLoadingEnabled= true;
class CheckIn {
public virtual Member member { get; set; }
}