为什么我可以从RIA Services返回一个字符串,但不能返回IEnumerable <string>?</string>

时间:2011-04-07 08:06:41

标签: silverlight wcf-ria-services

我正在尝试在我的DomainService中创建一个方法来返回字符串列表。我这样做的原因是因为我不想返回整个信息实体。我可以创建一个返回单个字符串的方法,如下所示:

    public string GetDestinations()
    {
        return "Hello world";
    }

这可以通过InvokeOperation<string>来自客户端正常工作。但是,当我将DomainService方法转换为Ienumerable时,如下所示;

    public IEnumerable<string> GetDestinations()
    {
        List<String> h = new List<string>();
        h.Add("HELLO");
        h.Add("WORLD");

        return h;
    }

然后显然使用InvokeOperation<IEnumerable<string>>调用我得到编译器错误:

类型'String'不是有效的实体类型。实体类型不能是基本类型或简单类型,如字符串或Guid。

咦?鉴于我可以返回单个字符串,这没有意义。如何从我的DomainService返回字符串列表?

2 个答案:

答案 0 :(得分:6)

尝试返回一个字符串数组并将该方法标记为InvokeOperation。

[Invoke]
public string[] GetDestinations()
{
...
}

答案 1 :(得分:2)

按照惯例,返回IEnumerable的方法计为Query方法。查询方法只能返回实体集合。将Invoke属性添加到您的方法。