Я набрал набор данных с соотношением 1: N между двумя таблицами.
В дочерней таблице есть столбец «Порядок», который я использую для сортировки (по порядку) в SP при загрузке данных в набор данных. Как я понимаю, этот порядок не гарантируется при работе с набором данных.
Мне нужно GetChildRows родительской строки и убедиться, что строки в определенном порядке, определенном в столбце заказа.
Сейчас я делаю следующее:
class Program
{
static void Main(string[] args)
{
DataSet1 ds = new DataSet1();
//load data
DataSet1.ParentTableRow parentRow = ds.ParentTable.FindByID(1);
DataSet1.ChildTableRow[] childRows = parentRow.GetChildTableRows();
Array.Sort<DataSet1.ChildTableRow>(childRows, new ChildTableCoparer());
//Enumerate fields is right order
}
}
public class ChildTableCoparer : IComparer<DataSet1.ChildTableRow>
{
public int Compare(DataSet1.ChildTableRow x, DataSet1.ChildTableRow y)
{
if (x.Order > y.Order) return 1;
if (x.Order < y.Order) return -1;
return 0;
}
}
Есть ли лучший способ обеспечить порядок при использовании GetChildRows ()?