通常我使用完整的:
var variable = (from r in db.mytable
where r.field == 2 select r).tolist();
但是,如果我只是在做类似的事情:
foreach (string p in db.mytable)
{
//do something here
}
如何使用OrderBy?
答案 0 :(得分:0)
首先,我建议使用LINQ; 其次,最好使用Async和TASK模式以避免死锁; 第三,使LINQ Query AsQueryable成为可能,以便所有排序和筛选器都将适当地放在SQL Server上,而不在您的应用程序之内。
从Microsoft:https://msdn.microsoft.com/en-us/library/bb549264(v=vs.110).aspx
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void OrderByEx1()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
// Sort the Pet objects in the array by Pet.Age.
IEnumerable<Pet> query =
pets.AsQueryable().OrderBy(pet => pet.Age);
foreach (Pet pet in query)
Console.WriteLine("{0} - {1}", pet.Name, pet.Age);
}
答案 1 :(得分:-1)
foreach
不适用于LINQ
至entities
。如果必须应用foeach
,则需要将数据带入内存,而将所有数据带入内存绝对不是一个好主意。
我不解释为什么您需要foreach
,如果您能告诉场景,它将更加有帮助。但是,如果仍然需要foreach
,请使用以下代码
var variable = (from r in db.mytable
where r.field == 2 select r)
.OrderBy(x=>x.Some_r_property)
.ToList();
foreach (var p in variable)
{
//do something here
}