在the msdn documentation中,建议不要将控件直接绑定到对象查询:
我们建议您不要将控件直接绑定到ObjectQuery。 而是将控件绑定到Execute方法的结果。
我也在这里阅读了一些推荐它的答案,也没有绑定到模型本身的实例。然而,我无法找到为什么不推荐它,因为到目前为止我所做的所有测试似乎都工作正常。
有人能说清楚我不应该将这些对象用于绑定的原因吗?
答案 0 :(得分:1)
如果您关注the link below that info,他们会给出解释:
我们建议您不要将控件直接绑定到ObjectQuery。 而是将控件绑定到Execute方法的结果。 绑定 这种方式可以防止查询在执行期间多次执行 结合。 强>
您不希望在绑定期间执行查询。在我不知情的情况下,我不希望绑定更新触发数据库查询。此外,我发现绑定到实体直接导致其他问题。通过保持对象周围,您还需要保持ObjectContext。通常,您应该尽可能缩短ObjectContext,最好是使用块。
答案 1 :(得分:0)
对于“我为什么不应该将控件绑定到ObjectQuery”这个问题:
引用from here:
要确保数据源是最新的,您可能需要执行 使用Execute方法再次查询。这将绑定控件 到一个新的ObjectResult。
如果您不调用Execute
,则与执行后查询实际返回的内容相比,您的UI中显示的内容可能不是最新的。当然,当数据库发生更改时,绑定不会自动更新。
第二点:
我们建议您不要将控件直接绑定到ObjectQuery。 而是将控件绑定到Execute方法的结果。绑定 这种方式可以防止查询在执行期间多次执行 结合。