I have the following property declarations and mappings (abridged classes):
public class Consumer: AuditableEntity
{
public virtual Consumer Parent { get; set; }
public virtual User User { get; set; }
public virtual Role Role { get; set; }
public virtual ICollection<Consumer> Consumers { get; set; }
}
public ConsumerMap()
{
HasRequired(t => t.Role)
.WithMany(t => t.Consumers)
.Map(a => a.MapKey("RoleId"))
.WillCascadeOnDelete(false);
HasRequired(t => t.User)
.WithOptional(t => t.Consumer)
.Map(a => a.MapKey("UserId"))
.WillCascadeOnDelete(false);
}
A manual database query confirms all joins are successful and in fact, a manual execution of the query sent by EF is successful. Yet when I use the following query, the User
property on the two Consumer
objects returned is null:
return CurrentDbContext.Consumers.Include("User").Include("Role").Where(e => !e.IsDeleted);
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…