rem*_*rem 5 c# sql sql-server linq-to-sql
出于我缺乏SQL Server经验并考虑到此任务是业务线应用程序的常用任务,我想问一下,可能有一种标准的常用方法来执行以下数据库操作:
假设我们有两个表,彼此连接由一对多的关系,例如SalesOderHeader和SalesOrderLines
http://s43.radikal.ru/i100/1002/1d/c664780e92d5.jpg
字段SalesHeaderNo是SalesOderHeader表中的PK和表中的FK SalesOrderLines.
在前端应用程序中,用户SalesOderHeader使用例如日期范围选择表中的一些记录,或IsSelected通过单击GridView中的复选框字段来选择字段.然后,用户在选定的销售订单范围内执行一些操作(让它只是"移动到另一个表").
我的问题是:
在这种情况下,我如何能够SalesOrderLines以尽可能简单,正确,快速和优雅的方式在表中访问子记录,以便对这些子记录执行相同的操作(在我们的情况下,"移动到另一个表")?
如果您接受基于 T-SQL 的解决方案(而不是 C# / LINQ) - 您可以执行以下操作:
-- define a table to hold the primary keys of the selected master rows
DECLARE @MasterIDs TABLE (HeaderNo INT)
-- fill that table somehow, e.g. by passing in values from a C# apps or something
INSERT INTO dbo.NewTable(LineCodeNo, Item, Quantity, Price)
SELECT SalesLineCodeNo, Item, Quantity, Price
FROM dbo.SalesOrderLine sol
INNER JOIN @MasterIDs m ON m.HeaderNo = sol.SalesHeaderNo
Run Code Online (Sandbox Code Playgroud)
这样,您可以根据选择条件将子表中的整行行插入到新表中。
| 归档时间: |
|
| 查看次数: |
367 次 |
| 最近记录: |