在延迟加载中包含外键
本文关键字:包含外 延迟加载 | 更新日期: 2023-09-27 18:27:19
所以我刚刚使用virtual关键字将外键属性更改为延迟加载。
在我的实体SupportTicket中,我得到了一个对UserProfile的外键引用:
[Required]
public virtual UserProfile Owner { get; set; }
我的查找方法如下所示:
public static SupportTicket Find(int id)
{
using (DatabaseContext db = new DatabaseContext())
{
SupportTicket ticket = db.SupportTickets.SingleOrDefault(x => x.Id == id);
return ticket;
}
}
我的问题是,每当我从Find方法获得SupportTicket时,由于我在数据库上下文之外,我就无法访问SupportTicket的UserProfile。
我以前没有使用过延迟加载,所以我应该包含()实体中的每一个外键吗?
public static SupportTicket Find(int id)
{
using (DatabaseContext db = new DatabaseContext())
{
SupportTicket ticket = db.SupportTickets.Include("Owner").SingleOrDefault(x => x.Id == id);
// or SupportTicket ticket = db.SupportTickets.Include(st => st.Owner).SingleOrDefault(x => x.Id == id);
return ticket;
}
}