在实体中填充关系对象
本文关键字:关系 对象 填充 实体 | 更新日期: 2023-09-27 18:25:31
我有一个类看起来像这样:
public partial class Defect
{
public int DefectID { get; set; }
public string Title { get; set; }
public virtual DefectStatus DefectStatus { get; set; }
public virtual Developer Developer { get; set; }
public virtual Project Project { get; set; }
}
当我称之为:
var defect = db.Defects.Find(id);
如何使用Project表中的关系数据填充Project
?
目前,我正在执行以下defect.Project
来填充defect.Project
var defect = db.Defects.Find(id);
defect.Project = db.Projects.Find(defect.ProjectID);
但我想知道是否有更好的方法来完成同样的事情?
如果您在请求Project时仍在db上下文中,则(因为您已将属性标记为Virtual),Project将延迟加载。如果您在数据库上下文之外,那么您需要在上下文中加载它(就像您正在做的那样)。
但是,您可以不使用Virtual关键字或在查询中使用Include:来加载项目实体
db.Defects.Include("Project").Where(d => d.DefectId.Equals(id));
这看起来是加载实体的最佳参考。