- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望能够在一次调用中加载多个 RIA 实体集,而无需将几个小的 LoadOperations 链接/嵌套在一起,以便它们按顺序加载。
我有几个页面上有许多组合框。这些组合框填充了来自数据库的静态值(例如状态值)。
现在,我通过一种方法将这些值预加载到我的 VM 中,该方法将我要加载的每种类型的一系列 LoadOperations 串在一起。例如:
public void LoadEnums() {
context.Load(context.GetMyStatusValues1Query()).Completed += (s, e) =>
{
this.StatusValues1 = context.StatusValues1;
context.Load(context.GetMyStatusValues2()).Completed += (s1, e1) =>
{
this.StatusValues2 = context.StatusValues2;
context.Load(context.GetMyStatusValues3Query()).Completed += (s2, e2) =>
{
this.StatusValues3 = context.StatusValues3;
(....and so on)
};
};
};
};
虽然这工作正常,但似乎有点令人讨厌。此外,我想知道最后一个加载操作何时完成,以便我可以在此之后加载我想要处理的任何实体,以便这些枚举值在组合框和列表框等表单元素中正确解析。 (我认为)如果不创建一个委托(delegate)并在最后一个加载操作完成时调用它,我无法在上面轻松地做到这一点。
所以我的问题是:有没有人知道更好的使用模式,理想情况下我可以在单个 LoadOperation 中加载所有静态实体集?
最佳答案
看起来答案很简单,至少在 RIA 服务 1.0 中是这样:
只需一个接一个地调用 LoadOperations,Domain Context 将使它们按照调用的顺序同步。
即
context.Load(context.GetMyStatusValues1Query()).Completed += (s, e) =>
{
this.StatusValues1 = context.StatusValues1;
}
context.Load(context.GetMyStatusValues2Query()).Completed += (s1, e1) =>
{
this.StatusValues1 = context.StatusValues2;
}
这对我来说似乎并不明显,因为我希望第二个查询在第一个查询之后立即调用,同时它仍在加载,并抛出“LoadOperation in progress”异常。
这很好,因为这意味着在我的问题示例中使用丑陋的嵌套 LoadOperation 模式的唯一原因是第二个 LoadOperation 取决于第一个的结果。
关于c# - 使用 WCF RIA 服务的多个 LoadOperations 的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2994148/
我在 Silverlight 项目中使用 RIA 服务。我在客户端使用 LoadOperation 类从服务器加载一些数据。 在加载该数据的过程中,该请求可能会被针对不同数据的更新请求所取代。这是基于
我希望能够在一次调用中加载多个 RIA 实体集,而无需将几个小的 LoadOperations 链接/嵌套在一起,以便它们按顺序加载。 我有几个页面上有许多组合框。这些组合框填充了来自数据库的静态值(
将 Silverlight 3 与 RIA 结合使用:LoadOperation.Completed 事件与通过 DomainContext.Load 方法使用回调有何区别?两者都是异步触发的,并且都
我是一名优秀的程序员,十分优秀!