IQueryable到string []数组?

时间:2010-02-01 10:37:41

标签: c# linq entity-framework

我有这段代码:

    public string[] GetUsergroupRoles(string username)
    {
        var qry = from ug in _entities.Usergroups
               from r in _entities.Roles
               from u in _entities.Users
               where u.Username == username
               group r by
               new
               {
                   r.RoleID
               };

        return qry.ToArray();
    }

我收到错误“... Data.Models.Role> []'到'string []'。存在显式转换(你错过了演员吗?)”

什么需要让它返回一个字符串数组?

/ M

3 个答案:

答案 0 :(得分:3)

好吧,你正在创建一系列组(我不知道为什么你使用匿名类型这样做 - 你应该只能使用group r by r.RoleID)。

您对每个小组的期望是什么字符串?

答案 1 :(得分:1)

您正在尝试将SomeType []强制转换为字符串[],并且编译器抱怨它不知道如何,因为您尚未定义强制转换。

尝试循环遍历数组并将SomeType的特定字符串属性(或等效的ToString())收集到数组中。

答案 2 :(得分:1)

尝试迭代qry并将每个项目的ToString方法的结果累积到string []变量中,然后返回它。像这样:

// your code here

string[] ret = new string[qry.Length];
int i = 0;
foreach (var item in qry) {
  ret[i] = qry.ToString()
  i++;
}
return ret;