当我尝试DBNull
使用Queryable.OrderBy
它对值进行排序时会抛出异常。
Pet[] pets =
{
new Pet {Name = "Barley", Age = 8},
new Pet {Name = DBNull.Value, Age = 1},
new Pet {Name = "Boots", Age = 4}
};
// Sort the Pet objects in the array by Pet.Name
IEnumerable<Pet> query = pets.AsQueryable().OrderBy(pet => pet.Name);
foreach (Pet pet in query)
Console.WriteLine("{0} - {1}", pet.Name, pet.Age);
下面的代码抛出异常,因为我正在使用DBNull
. 我知道我可以通过使用下面的代码来克服这个问题,
IEnumerable<Pet> query = pets.AsQueryable().OrderBy(delegate(Pet pet)
{
if (pet.Name is DBNull)
return null;
return pet.Name;
});
但我不能使用这个代码。有没有办法在不添加条件检查OrderBy
功能的情况下处理这个问题。