有没有办法用 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/