Массовое обновление свойства в объекте класса - PullRequest
1 голос
/ 04 августа 2020

У меня есть класс, который массово загружает данные из списка объектов в таблицу базы данных. Иногда одно из передаваемых полей даты (ReadingTimeCdt) должно быть установлено как текущее время для всех записей в этом списке, поэтому у меня есть параметр (логический), который проверяет, так ли это, и устанавливает ли ReadingTimeCdt текущее время. Я использую foreach l oop, чтобы установить текущую дату, но эти объекты могут быть довольно большими, и производительность может стать проблемой. Есть ли способ просто установить для всех ReadingTimeCdt в объекте значение currentTime без использования al oop?

Вот код, который у меня есть.

        public void InsertBulkLoad(List<Location> rec, bool currentDate)
        {

            try
            {
                if(currentDate == true){
                    foreach (Location vr in rec)
                    {
                        DateTime currentTime = DateTime.Now;
                        vr.ReadingTimeCdt = currentTime;
                    }
                }

                using (LiveContext entity = new LiveContext())
                {
                    entity.Location.AddRange(rec);
                    entity.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                // Exception code here...
            }

        }

1 Ответ

1 голос
/ 04 августа 2020

Вы можете достичь sh этого, если инициализируете свойство в классе. Я имею в виду, что вы все равно собираетесь установить его на текущее время, и во время сохранения EF все равно придется l oop через все эти объекты.

public class Location
{
    .....
    public DateTime ReadingTimeCdt { get; set; } = DateTime.Now;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...