如何执行(实现)对ServiceOperation的LINQ查询调用,只返回一个字符串值

时间:2011-12-06 05:17:51

标签: entity-framework linq-to-entities wcf-data-services

在前面,键盘上的那个人在睡眠部门已经过期了。但也有点绝望。

我有一个数据服务[WebGet]方法,设置如下。

[WebGet]
public string Finalize(string PayloadObject, string CltUUID, string Comment){..}

它返回一个简单的字符串,具体取决于内部执行的结果。这工作正常。

我称之为

var res = base.ServiceRef.CreateQuery<DBcontext>("Finalize")
.AddQueryOption("PayloadObject", string.Format("'{0}'", builder.ToString()))
...

如何让此查询具体化? 通常使用res.ToList(),ToArray()或.First()。如果我这样做,我会得到一个例外。使用.ToString()不执行查询,只返回url。

查询有效,如果我在此代码后面的行中单击并在调试器中单击“查看...”,则执行查询,该方法在服务器上运行。

似乎我只是不让它运行,我错过了什么?除了睡觉

感谢您的任何指示

此致,Andreas

1 个答案:

答案 0 :(得分:0)

我认为你不能使用CreateQuery来调用返回单值的操作。您必须使用Execute instead。 MSDN文档还提到返回基本类型cannot use QueryOption的操作是有意义的,因为查询选项用于定义IQueryable的查询。如果您需要传递参数,请尝试使用通用WCF REST方法在WebGet中指定模板,并在客户端使用正确包含参数的URI。

您还可以尝试在服务操作中使用SingleResultAttribute