linq-to-sql - 使用 Linq-To-SQL 插入/选择

标签 linq-to-sql select insert

有没有办法用 Linq 执行插入/选择转换为这个 sql:

INSERT INTO TableA (...)
SELECT ...
FROM TableB
WHERE ...

最佳答案

是的,@bzlm 首先介绍了它,但如果您更喜欢更详细的内容:

// dc = DataContext, assumes TableA contains items of type A
var toInsert = from b in TableB
               where ...
               select new A 
               {
                   ...
               };

TableA.InsertAllOnSubmit(toInsert);
dc.SubmitChanges();

从审查/维护的角度来看,我更喜欢这个,因为我认为它在选择中发生的事情更加明显。

针对@JfBeaulac 的观察:

请注意,这不会生成显示的 SQL - 据我所知,实际上不可能直接使用 Linq(到 SQL)生成,您必须绕过 linq 并直接进入数据库。从功能上讲,它应该实现相同的结果,因为它将执行选择然后插入数据 - 但它会将数据从服务器往返于客户端并返回,因此对于大量数据可能不是最佳选择。

关于linq-to-sql - 使用 Linq-To-SQL 插入/选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2080915/

相关文章:

mysql在表b中插入数据时在表a中插入数据

选择时 PHP MySQL 语法错误

asp.net-mvc - Linq to Sql vs Nhibernate vs SubSonic vs 存储过程(帮助)

mysql - LIKE mysql查询完整单词

angularjs - AngularFire 和 ngOptions

mysql - PHP/MYSQL - 显示来自多个列的最新不同值

php - 在 mysql/php 中执行插入...选择...查询时是否可以执行计数(*)?

c# - 帮助将 sql 查询转换为 LINQ

linq - 如何返回一列由另一列分组的最大值的行?

linq - 在 Linq2SQL 中,如何在单个查询中获取记录以及序列中的前一个和下一个?