在我的Web项目中,我认为使用延迟加载没有任何好处。所以我只使用急切加载。
除非我不使用延迟加载, 我还有什么理由需要在POCO方法上使用虚拟关键字吗?
public class User {
public int id {get; set;}
public string name {get; set;}
public virtual ICollection<Order> orders { get; ;set}
}
public class Order {
public int id {get; set;}
public int userId {get; set;}
[ForeignKey("userId")]
public virtual User user {get; set;}
}
// Using eager loading to avoid N+1 problem
db.Order.Include("user").Select(x => new {
orderId = x.id,
userName = x.User.name
}).ToList();