2010-05-20 62 views
0

我迄今使用级联ID字符串像1,2,3并使用该查询在我的表更新中...的LINQ到SQL相当于这个SQL查询

if exists(select ClientId from Clients where ClientId IN (SELECT i.items FROM dbo.Splitfn(@Id,',') AS i)) 
    begin 
     update Clients set IsDeleted=1 where ClientId IN (SELECT i.items FROM dbo.Splitfn(@Id,',') AS i) 
     select 'deleted' as message 
    end 

什么是LINQ到SQL等效上面的查询?任何建议...

回答

1

如果我已经明白你想要做的正确,这样的事情应该工作。

var idsToDelete = ids.Split(",").Select(x => Convert.ToInt32(x)); 

var clientsToDelete = _DB.Clients.Where(x => idsToDelete.Contains(x.Id)); 

foreach(var client in clientsToDelete) 
{ 
    client.IsDeleted = true; 
} 

_DB.SubmitChanges(); 
+0

你说得对。 – 2010-05-20 10:52:18