我正在尝试在我的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返回字符串列表?
答案 0 :(得分:6)
尝试返回一个字符串数组并将该方法标记为InvokeOperation。
[Invoke]
public string[] GetDestinations()
{
...
}
答案 1 :(得分:2)
按照惯例,返回IEnumerable的方法计为Query方法。查询方法只能返回实体集合。将Invoke属性添加到您的方法。