0

(1) 有人可以解释使用下面描述的两种不同方法执行数据访问之间的区别吗?

context.Refresh(RefreshMode.ClientWins, context.ParentEntity);

return (from pe in context.ParentEntity select pe).ToList();

(2) 对于涉及子实体/导航属性的更复杂的示例,这两个调用之间是否存在根本区别:

context.Refresh(RefreshMode.ClientWins, context.ParentEntity);
context.Refresh(RefreshMode.ClientWins, context.ChildEntity);

return (from pe in context.ParentEntity.Include("ChildEntities") select pe).ToList();

(3) 最后,我们有一些代码执行了这两种方法的组合:

context.Refresh(RefreshMode.ClientWins, context.ParentEntity.Include("ChildEntities"))

当一种方法应该在另一种方法上使用时,或者它们在功能上都相同时,我试图让我的头脑清醒。

4

1 回答 1

0

我认为您对RefreshInclude...有错误的想法

Refresh具有双重目的,即允许使用来自数据源的数据刷新对象,并成为解决冲突的机制”(来自MSDN

"Include指定要包含在查询结果中的相关对象。" (来自MSDN

所以要回答你的问题Refresh是一个无效的方法而不是一个查询......它用于管理并发和解决冲突......我不确定你是否试图从中获取结果,但我不能想象它工作得很好!

您的(from pe in context...语句是使用该方法的LINQ查询,该Include方法(就像听起来一样)在查询结果中包含指定的对象。

Taking a look at the MSDN pages for the methods can usually help quite a bit when you're not sure what they are doing.

Hope this helped!

于 2012-12-18T21:19:35.247 回答