在延迟加载中包含外键

时间:2013-08-11 20:22:31

标签: c# database entity-framework

所以我刚刚使用 virtual 关键字将我的外键属性更改为延迟加载。

在我的实体SupportTicket中,我得到了一个对UserProfile的外键引用:

[Required]
public virtual UserProfile Owner { get; set; }

我的Find方法如下所示:

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,因为我在databasecontext之外。

我之前没有使用延迟加载,所以我应该在实体中包含()每个外键吗?

1 个答案:

答案 0 :(得分:0)

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;
    }
}
相关问题