簡體   English   中英

使用EntityFramework中的ID列表更新條目列表

[英]Update a List of entries using a List of ID's in EntityFramework

我正在使用以下代碼在List<string>存儲connectionID的List<string>

List<string> connectionIds =
                    connectedUsers.Where(x => x.UserId == userId).Select(x => x.ConnectionId).ToList();

我需要更新數據庫,以便在找到相應的ID時將連接狀態設置為false 到目前為止,我使用以下代碼:

if (connectionIds.Any())
                {
                    foreach (string connectionId in connectionIds)
                    {
                        Connection curConn = db.Connection.FirstOrDefault(x => x.ConnectionID == connectionId);
                        if (curConn != null)
                            curConn.Connected = false;
                        db.SaveChanges();
                    }
                }

但是,這會為每個連接調用DB ...有沒有簡單的方法在更簡單的過程中更新連接?

您可以使用Contains方法。 這將導致單個查詢以加載連接對象。 獲得查詢結果后,循環結果以更新Connected標志,然后保存更改。

List<string> connectionIds = ...;

if (connectionIds.Any()) {
    var data = db.Connection
        .Where(x => connectionIds.Contains(x.ConnectionID))
        .ToList();
    foreach (var item in data) {
        item.Connected = false;
    }
    db.SaveChanges();
}

您希望使用EF在一個SQL語句中執行批量更新。 EF不直接支持這一點。 請參閱此處了解可能的解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM