从WCF数据服务中获取一些内容直接进入我的视图模型:
public const string RequestsPropertyName = "Requests";
private DataServiceCollection<Request> _requests = null;
public DataServiceCollection<Request> Requests
{
get { return _requests; }
set
{
if (_requests == value) { return; }
var oldValue = _requests;
_requests = value;
RaisePropertyChanged(RequestsPropertyName, oldValue, value, true);
}
}
然后
Requests.LoadAsync(query);
但是如果我有一个不属于集合的属性呢?
public const string RequestDetailsPropertyName = "RequestDetails";
private Request _requestDetails = null;
public Request RequestDetails
{
get { return _requestDetails; }
等等。 我从哪里获得'LoadAsync(查询)'方法?
谢谢,
Ueli
答案 0 :(得分:0)
这是一件非常简单的事情。您只需在应用程序中使用DomainContext。您可以在此处创建查询,然后将结果应用于您的媒体资源。
以下是代码中可能出现的示例:
void LoadRequest(int requstID)
{
var query = workContext.GetRequestByIDQuery(requestID);
workContext.Load(query, lo =>
{
DispatcherHelper.CheckBeginInvokeOnUI(() =>
{
if (lo.HasError)
throw lo.Error;
else
RequestDetails = lo.Entities.Single();
});
}, null);
}
在此示例中,workContext对象是DomainContext。查询是服务器上的特定版本 - 您也可以使用以下命令构建查询客户端:
.Where(r => r.RequestID == requestID)
在异步调用之后,它会抛出异步调用中发生的任何错误,然后返回唯一返回的实体。如果您获得的实体数量超过1个,则可以使用.First()代替。
如果这还不足以让你离开,请告诉我,我可以进一步解释。