从LINQ IQueryable对象返回字符串[]?

ome*_*cat 0 c# linq asp.net ajax

我正在尝试使用.NET AJAX自动完成扩展.扩展期待以下......

public static string[] GetCompletionList(string prefixText, int count, string contextKey)
Run Code Online (Sandbox Code Playgroud)

我的数据库查询位于LINQ var对象中.我收到编译时错误,无法将类型IQueryable转换为string [].

InventoryDataContext assets = new InventoryDataContext();
    var assetsInStorage = from a in assets.Assets
                          where a.Name.Contains(prefixText)
                          orderby a.Name ascending
                          select new[] { a.Manufacturer.Name, a.Name };
    return (string[])assetsInStorage;
Run Code Online (Sandbox Code Playgroud)

CMS*_*CMS 8

为了获得一开始string[],您必须在查询中只选择一个字符串属性,而不是匿名对象:

var assetsInStorage = from a in assets.Assets
                      where a.Name.Contains(prefixText)
                      orderby a.Name ascending
                      select a.Manufacturer.Name; // or a.Name
Run Code Online (Sandbox Code Playgroud)

assetsInStorage在这一刻是一个IEnumerable<string>,然后你应该将其转换为string[]:

return assetsInStorage.ToArray();
Run Code Online (Sandbox Code Playgroud)