2012-11-30 70 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