如果我需要填充导航属性的数据库中的实体,似乎我可以执行以下两个查询:
Context.Set().Include().SingleOrDefault();
或
Context.Entry(entity).Reference().Load();
两者之间是否有任何差异(表现或其他方面)?
答案 0 :(得分:2)
是不同的:
快速检查EF5源代码:
/// <summary>
/// Calls Load on the underlying <see cref="T:System.Data.Objects.DataClasses.IRelatedEnd"/>.
///
/// </summary>
public void Load()
{
this.ValidateNotDetached("Load");
this._relatedEnd.Load();
}
所以我总结出差异是
包含转到Db,
首先加载检查上下文。如果没有则加载。
LOAD上的DOCU说
/// Loads the entity from the database.
/// Note that if the entity already exists in the context, then it will not overwritten with values from the database.