[英]Insert New Data using Linq — WCF Data Services (formerly ADO.NET Data Services)
[英]Select Single Value with ADO.Net Data Services and LINQ
尝试使用ADO.Net数据服务。 所有示例都显示了如何检索列表,但是如何检索单个值? 例如产品X的价格。
这是我使用的LINQ查询:
var qry =(从svcContext.Products中的p,其中p.ProductName ==“ Chair” && p.Colour == 1选择c)作为DataServiceQuery;
产品退货
qry.BeginExecute((pr)=> returnProd = qry.EndExecute(pr).First(),null);
在这里,我尝试检索产品并将其加载到局部变量中,但是局部变量保持为空。
可以肯定的是,我做错了:)...任何帮助将不胜感激。
不应该是
var qry =(从svcContext.Products中的p,其中p.ProductName ==“ Chair” && p.Colour == 1选择p)在哪里声明了c?
对不起应该是
var qry =(从svcContext.Products中的p,其中p.ProductName ==“ Chair” && p.Colour == 1选择p)作为DataServiceQuery <Product>;
如果结果集为空,则First()
应该引发异常-您确定查询正在执行吗?
您不是第一个被所有silverlight传出请求的异步特性所困扰的人。
在lambda表达式中
(pr) => returnedProd = qry.EndExecute(pr).First()
您捕获了局部变量returnProd,但通常在调用BeginExecute之后将分离的线程为时已晚。 它可能在执行超出当前方法的范围后执行,并且变量将丢失。
解决的办法是有效地使用“returnedProd”来填充任何你需要做的lambda表达式的UI或。 就像是 :
(pr) => {
returnedProd = qry.EndExecute(pr).First();
MessageBox.Show("Retrieved record" + returnedProd.Id);
}
否则,对于社区来说是有用的答案,我希望我在几周前得到一个答案:(
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.