簡體   English   中英

將修改后的列表返回到數據庫

[英]Return back a Modified list to database

將從實體框架獲取的修改后的列表返回到我們的數據庫的最好的最佳方法是什么。

問題以簡單的形式:

如何將自定義列表(例如,約100,000條記錄的列表)返回到數據庫,這些是我們實體以脫機線程安全的方式進行的修改版本。

編碼 :

        var query = From context.Products
                    select p;

        var listQuery = query.ToList();

編輯:似乎所有附加到實體的列表將導致線程安全錯誤。 因此,我們必須制作一個列表的克隆版本,例如List,然后在編輯后以常規耗時或速記的方式插入所有項目

示例步驟:

  1. 從實體DataContext中創建並填充我們定義類型的自定義列表數組
  2. 遍歷列表(約100,000個項目)
  3. 編輯清單
  4. 最后將其返回數據庫

如何將listQuery傳遞給數據庫?

遍歷它們中的每一個,並通過Entity / Linq查找等效實體或記錄,然后更改項目?? 可能是最好的主意,還是我們有速記或最佳做法? 有什么建議或想法嗎?

首先,您的代碼示例中有一個小錯誤。 您需要添加“ from context.Products中的p”而不是“ from context.Products”


如果我正確理解,那么我通常編輯記錄列表的方式是:

            var products = dbContext.Products.ToList(); // Gets As List
            foreach (var product in products)
            {
                // edit the value, EF manages what is changed
                product.someField = "some new value";
            }
            dbContext.SaveChanges(); // Saves All Changes

我更喜歡使用方法語法。 如果您更喜歡使用查詢語法,則可以將第一行替換為:

var products = (from p in products
                select p).ToList();

暫無
暫無

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

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