Я запрос в таблице, как показано ниже.
Id
BeforeId
Description
Например:
Id BeforeId Description
1 NULL test
2 NULL test1
3 2 test2
4 3 test3
Если BeforeId не равен нулю, будет выдвигаться перед Id. Я хотел бы заказать по Id и BeforeId с сортировкой в следующем порядке.
Id BeforeId Description
1 NULL test
4 3 test3
3 2 test2
2 NULL test1
Я пытаюсь код, как показано ниже, но это не так.
var listOrder = _entites.Orders.OrderBy(t => t, new CustomComparer()).ToList();
public class CustomComparer : IComparer<Order>
{
public int Compare(Order lotA, Order lotB)
{
if (lotA.BeforeId!=null)
{
if (lotB.Id == lotA.BeforeId)
{
return -1;
}
else
{
return 0;
}
}
else if(lotB.BeforeId != null )
{
if(lotA.Id == lotB.BeforeId)
{
return 1; // A > B
}
else
{
return 0;
}
}
else
{
return 0;
}
}
}
Может кто-нибудь сказать мнеКак решить эту проблему.
Спасибо!