如何编写LINQ to SQL等效于:
INSERT INTO Table1 (field1, field2, field3)
SELECT field1, field2, field3
FROM Table2
WHERE (field1= @field1)
Run Code Online (Sandbox Code Playgroud)
谢谢
由于您没有返回任何结果,只需使用低级DataContext.ExecuteCommand()方法:
using (MyDataContext dc = new MyDataContext())
{
dc.ExecuteCommand(@"
INSERT INTO Table1 (field1, field2, field3)
SELECT field1, field2, field3
FROM Table2
WHERE (field1= {0})
",
field1);
}
Run Code Online (Sandbox Code Playgroud)
LINQ 是一种查询语言,因此它不执行更新或插入操作。然而,LINQ to SQL 实体对象模型具有处理 CUD 的方法:
using(MyDataContext dc = new MyDataContext())
{
//select the source entities from Table2
var Table2Entities = (from e in dc.Table2 where e.Field1 == "value" select e);
//for each result, create a new Table1 entity and attach to Table1
Table2Entities.ForEach(t2e => dc.Table1.InsertOnSubmit(
new Table1Entity {
Field1 = t2e.Field1,
Field2 = t2e.Field2,
Field3 = t2e.Field3
});
//submit the changes
dc.SubmitChanges();
}
Run Code Online (Sandbox Code Playgroud)
这里真正的区别在于它需要两个单独的 SQL 事务,而不是一个 - 一个用于选择,一个用于插入。
| 归档时间: |
|
| 查看次数: |
7680 次 |
| 最近记录: |