Возникла проблема при обновлении большого количества записей в сущности - PullRequest
0 голосов
/ 28 января 2020

Мне нужно обновить большое количество записей в таблице на сервере sql. Для этого я использовал для каждого l oop и добавил значения в сущности и использовал одиночные изменения сохранения для обновления записей в таблице. Но записи не обновляются в созданном порядке. Он вставлялся в случайном порядке.

Например, я создал 16 ключевых значений результата, таких как k1, k2, k3 et c .. в диалоге, и попытался вставить их в таблицу. Но порядок вставок k9, k1, k2, k5 и т. Д. *

Может кто-нибудь предложить мне решить эту проблему?

Я прикрепил скриншот моего кода, пожалуйста, отошлите его

введите описание изображения здесь

введите описание изображения здесь

             Objective objectives = new Objective()
             {
                        ObjectiveTitle = System.Net.WebUtility.HtmlEncode(objects.Summary),
                        ObjectiveDescription = description,
                        Assignee = objects.AssigneeId,
                        StatusId = objects.ObjectiveStatusId,
                        CycleId = objects.QuarterId,
                        ParentObjectiveId = parentId,
                        ProductLineId = objects.ProductLineId,
                        IsActive = true,
                        ProductId = objects.ProductId,
                        CreatedBy = userId,
                        ModifiedDate = currentdate,
                        CreatedDate = currentdate,
                        ClosedDate = null
                    };

                    context.Objective.Add(objectives);

                    ObjectiveHistory objectiveHistory = new ObjectiveHistory()
                    {
                        HistoryDetails = "New Objective '<i><b>" + System.Net.WebUtility.HtmlEncode(objects.Summary) + "</b></i>' has been created.",
                        ObjectiveId = objectives.ObjectiveId,
                        ParentObjectiveId = parentId,
                        UpdatedBy = userId,
                        IsActive = true,
                        UpdatedDate = currentdate
                    };

                    context.ObjectiveHistory.Add(objectiveHistory);

                    foreach (var res in objects.KeyObjects)
                    {
                        KeyResult keyResults = new KeyResult()
                        {
                            KeyResultTitle = System.Net.WebUtility.HtmlEncode(res.KeyResultSummary),
                            ObjectiveId = objectives.ObjectiveId,
                            Assignee = res.KeyResultAssigneeId,
                            CurrentValue = res.CurrentValue,
                            TargetValue = res.TargetValue,
                            IsActive = true,
                            CreatedBy = userId,
                            ModifiedDate = currentdateForKeyResult,
                            CreatedDate = currentdateForKeyResult
                        };

                        context.KeyResult.Add(keyResults);
                    }

                    var list = context.KeyResult.Local.Select(l => l).ToList();

                    foreach (var res in list)
                    {
                        KeyResultHistory keyHistory = new KeyResultHistory()
                        {
                            HistoryDetails = "Key Result '<i><b>" + System.Net.WebUtility.HtmlEncode(res.KeyResultTitle) + "</b></i>' has been created.",
                            ObjectiveId = objectives.ObjectiveId,
                            KeyResultId = res.KeyResultId,
                            UpdatedBy = userId,
                            IsActive = true,
                            UpdatedDate = currentdateForKeyResult
                        };

                        context.KeyResultHistory.Add(keyHistory);
                    }

                    context.SaveChanges();

1 Ответ

0 голосов
/ 28 января 2020

А что-то вроде

var results = objects.KeyObjects.Select(s=> new OKR_KeyResult{
//add values to params like param = s.param, aso...
}).ToList().OrderBy(o=>o.KeyResultTitle);
context.OKR_KeyResult.AddRange(results);
...