我使用的LINQ to SQL作为第一次我的数据库层和我所遇到的问题。 基本上,我有一个表单,允许用户创建预定义作业。 预定义的工作可以有许多预定义的工作项目。 例如,一个预定义的工作可能是这样的换油。 预定义的工作项目将是石油,劳动等。在我的数据库PredefinedJobs是一个表,PredefinedJobItems是一个外键回到PredefinedJobs另一个表。 我有用于添加具有LINQ到SQL类备份形式为类变量预定义作业的形式。 有显示所有的工作项目的形式在一个ListView。 一项新功能,要求我跟踪一个项目在ListView的位置。 例如,如果我的项目的ListView看起来像下面,注意顺序:
Qty Name Desc ItemOrder
4 Oil Penzoil 0
1 Labor 1
由于该项目是通过一个孩子形式加入我不想提供接入到ListView。 所以,我创建了下面的方法,企图既创造ItemOrder和排序PredefinedJob LINQ到SQL对象的集合。 它不会出现在列表中的排序依据函数实际上排序上PredefinedJob集合。 什么是保持对LINQ到SQL集合(即PredefinedJob.fkJobItems)为了最好的方法是什么? 或者,它会更好,只是传递引用我的ListView成增加的项目,我有机会获得selectedIndex处的工作子窗体?
private SortAndOrderItems(List<PredefinedJobsItem> items)
{
var nextItemOrderNumber = items.Max(max => max.ItemOrder) + 1;
foreach (var item in items)
{
if (item.ItemOrder == null)
{
item.ItemOrder = nextItemOrderNumber;
nextItemOrderNumber++;
}
}
items.OrderBy(i => i.ItemOrder).ToList();
}