如何控制在 Linq 中添加并提交到 parent 到 C# 中的 sql 的 Childs 的顺序?
how to control the order of the Childs added and submitted to a parent in Linq to sql in C#?
所以问题是我一直在为一个项目编码,在这个项目中,销售单 table A 有 3 种产品,在我们的概念中由 table B 表示。
逻辑表明,当我将产品 1,2 和 3 添加到代表 table A 的 object 时,它们应该按添加方式插入,即它应该是:
Table一个Children=>
1、
2、
3个
然而,在我们项目中的一些表格中,它的工作方式不同,有时我看到 children 被提交为 3 1 2,或 2 1 3....
正如我所说,这是一个拥有超过 9k 代码的表单的大项目,很遗憾我不能只为你们复制一些代码...
然而,我正在拼命寻找控制项目提交顺序的方法。
该项目是一个会计程序,销售单中的产品订单很重要...
简而言之,这就是正在发生的事情
Sales A = new A();
Foreach (var row in Datagridview.Rows)
{
//Note That the products in the datagrid are listed as 1,2,3
A.Product = new Product{name = row.Cells[name.index].value.ToString()}
}
dc.Sales.InsertOnSubmit(A);
dc.SubmitChanges();
//但是它的提交是乱序的
您无法控制数据存储的任意顺序。当您 查询 和 显示 数据时,您 do 控制它的排序顺序。
您可以使用 .OrderBy()
扩展方法订购记录。像这样:
var salesRecord = db.Sales.Single(s => s.Id == someId);
foreach (var product in salesRecord.Products.OrderBy(p => p.SomeValue))
DisplayProductToUser(product);
任何 IEnumerable<T>
都可以类似地排序:
var orderedSales = db.Sales.OrderBy(s => s.SomeValue);
所以问题是我一直在为一个项目编码,在这个项目中,销售单 table A 有 3 种产品,在我们的概念中由 table B 表示。
逻辑表明,当我将产品 1,2 和 3 添加到代表 table A 的 object 时,它们应该按添加方式插入,即它应该是:
Table一个Children=>
1、
2、
3个
然而,在我们项目中的一些表格中,它的工作方式不同,有时我看到 children 被提交为 3 1 2,或 2 1 3....
正如我所说,这是一个拥有超过 9k 代码的表单的大项目,很遗憾我不能只为你们复制一些代码...
然而,我正在拼命寻找控制项目提交顺序的方法。
该项目是一个会计程序,销售单中的产品订单很重要...
简而言之,这就是正在发生的事情
Sales A = new A();
Foreach (var row in Datagridview.Rows)
{
//Note That the products in the datagrid are listed as 1,2,3
A.Product = new Product{name = row.Cells[name.index].value.ToString()}
}
dc.Sales.InsertOnSubmit(A);
dc.SubmitChanges();
//但是它的提交是乱序的
您无法控制数据存储的任意顺序。当您 查询 和 显示 数据时,您 do 控制它的排序顺序。
您可以使用 .OrderBy()
扩展方法订购记录。像这样:
var salesRecord = db.Sales.Single(s => s.Id == someId);
foreach (var product in salesRecord.Products.OrderBy(p => p.SomeValue))
DisplayProductToUser(product);
任何 IEnumerable<T>
都可以类似地排序:
var orderedSales = db.Sales.OrderBy(s => s.SomeValue);