我正在使用LINQ To SQL通过db.table.InsertOnSubmit()执行插入。我想知道是否有一种方法可以重现'不存在的地方(选择等等)的T-SQL版本开始插入到etc etc end中作为单个查询?谢谢,马丁
答案 0 :(得分:3)
LINQ有一个名为Contains的扩展方法,它允许此功能。这可以在以下示例中看到:
NorthwindDataContext dc = new NorthwindDataContext();
dc.Log = Console.Out;
var query =
from c in dc.Customers
where !(from o in dc.Orders
select o.CustomerID)
.Contains(c.CustomerID)
select c;
foreach (var c in query) Console.WriteLine( c );
注意where子句的否定!
此示例来自网站here。
答案 1 :(得分:2)
据我所知,没有什么可以构建,我们必须使用where而不是Insert来手动查找行。
此类查询中存在种族编码的可能性。看看这个帖子的详细解决方案:
http://social.msdn.microsoft.com/Forums/en-US/linqtosql/thread/b1a0eb5b-d5d3-41af-829f-bbbac47b7383/