2012-11-30 75 views
3

我有令牌,用户名,StatusId表。在我为特定用户插入表中的任何行之前,我想检查是否存在任何具有活动状态的行,如果是这样,则将其更新为非活动状态。查询更新多行

我无法弄清楚如何在LINQ中做到这一点。目前iam以下面的查询方式回收我的价值。

var activeUsers = 
    (from _users in currentDataContext.Users 
     where _users.StatusId.Equals(1) 
     select _session); 

回答

0

将这项工作?

currentDataContext.Users.Where(x=> x.StatusId == true).First().StatusId = False; 
currentDataContext.SaveChanges(); 
+0

请注意,如果没有与'StatusId == true'匹配的记录将会抛出异常。 –

2
users = currentDataContext.Users.Where(o => o.StatusId == 1); 
foreach(var item in users) 
    item.StatusId = 0; 
currentDataContext.SaveChanges(); 

要注意的是如果你的应用程序是一个多用户则有机会你查询的数据库DB之后已经改变。

+0

感谢您的回应。状态ID值位于查询表中,名称为StatusType,列为statusid和statusdesc。我怎样才能直接在查询中链接。例如,其中user.statusid = statustype.statusid。 – user1663996