Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 批量更新类对象中的属性_C#_Asp.net Mvc_Asp.net Core - Fatal编程技术网

C# 批量更新类对象中的属性

C# 批量更新类对象中的属性,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,我有一个类,它将数据从对象列表批量加载到数据库表中。有时,传递的一个日期字段(ReadingTimeCdt)应该设置为该列表中所有记录的当前时间,因此我有一个参数(布尔值),用于检查是否存在这种情况,以及是否将ReadingTimeCdt设置为当前时间。我使用foreach循环将日期设置为current,但是这些对象可能非常大,性能可能会成为一个问题。有没有一种方法可以简单地将对象中的所有ReadingTimeCdt设置为currentTime而不使用循环 这是我的密码 publ

我有一个类,它将数据从对象列表批量加载到数据库表中。有时,传递的一个日期字段(ReadingTimeCdt)应该设置为该列表中所有记录的当前时间,因此我有一个参数(布尔值),用于检查是否存在这种情况,以及是否将ReadingTimeCdt设置为当前时间。我使用foreach循环将日期设置为current,但是这些对象可能非常大,性能可能会成为一个问题。有没有一种方法可以简单地将对象中的所有ReadingTimeCdt设置为currentTime而不使用循环

这是我的密码

        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...
            }

        }

public void InsertBulkLoad(列表记录,bool currentDate)
{
尝试
{
如果(currentDate==true){
foreach(rec中的位置vr)
{
DateTime currentTime=DateTime.Now;
vr.ReadingTimeCdt=当前时间;
}
}
使用(LiveContext entity=new LiveContext())
{
实体.Location.AddRange(rec);
entity.SaveChanges();
}
}
捕获(例外情况除外)
{
//异常代码在这里。。。
}
}

如果在类中初始化属性,则可以完成此操作。我的意思是,你无论如何都要将其设置为当前时间,并且在保存期间,EF无论如何都必须循环通过所有这些对象

public class Location
{
    .....
    public DateTime ReadingTimeCdt { get; set; } = DateTime.Now;
}

性能可能成为一个问题
您是否100%确定
问题
位于代码的
foreach
循环部分内?另外,您可以做的一件事是移动
DateTime currentTime=DateTime.Now在循环外,这将为您获得一些性能是的,如果我删除循环,性能很好。这个类处理数千行数据,所以我并不奇怪循环会减慢速度。谢谢。我昨天试过了,但还是不断出错,但我还是继续尝试了一次,结果成功了。我不确定我昨天做错了什么,但这是我现在要采用的解决方案。非常感谢。