Dwi*_*t T 3 c# linq linq-to-sql
尝试使用数据库中的linq检索数据.我想使用匿名类型并转换为Ilist,Array,ArrayList或Collection.数据用于接受Ilist,arraylist或集合的第三方对象.
我似乎无法让这个工作.我收到以下错误,"类型'System.String'不支持序列运算符"
using (var db = new dbDataContext())
{
var query = from e in db.people
select new
{
Count = e.LastName.Count()
};
Array test;
test = query.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
它与将结果转换为数组列表甚至是匿名类型无关.这是您的代码的另一个版本将失败:
using (var db = new dbDataContext())
{
var query = db.people.Select(x => x.LastName.Count());
foreach (int x in query)
{
Console.WriteLine(x);
}
}
Run Code Online (Sandbox Code Playgroud)
那仍然会以同样的方式失败 - 因为这是这个位的翻译:
x => x.LastName.Count()
Run Code Online (Sandbox Code Playgroud)
进入导致问题的SQL.
将其更改为:
x => x.LastName.Length
Run Code Online (Sandbox Code Playgroud)
我怀疑你会发现它有效.请注意,这不是一个真正的C#问题 - 它只是LINQ to SQL的翻译能力.
我建议你不要在这里使用匿名类型 - 这是毫无意义的.也许这不是你的完整代码,但总的来说,如果你发现自己创建了一个只有一个成员的匿名类型,那么问问自己它是否真的对你有益.