我有一个类-PairedValues.cs,下面的代码:
public class PairedValues
{
public string FileName { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
public PairedValues(string val1, DateTime val2, DateTime val3)
{
FileName = val1;
StartTime = val2;
EndTime = val3;
}
public PairedValues() { }
}
用另一种方法,我将文件名,开始时间和结束时间添加到列表中:
pairedValues.Add(new PairedValues(name, startTime, endTime));
现在,我有一个数据库,该数据库具有类似名称,startTime,EndTime的列,我需要从pairedValues更新此表,所以我遍历了pairedValues的列表并尝试在下面进行操作:
foreach (var val in pairedValues)
{
listOfFiles = GetListOfFiles()
.Where(e => e.fileName == val.FileName)
.ToList();
}
我想从pairedValues更新listofFiles中每个列的值,我可以使用另一个foreach来做到这一点,但是如何避免这种情况呢?任何建议将不胜感激。
保存到下面的数据库代码:
public void SaveDetails(List<MyDbTable> listOfFiles)
{
_Entity.MyTable.AddRange(listOfFiles);
try
{
_Entity.SaveChanges();
}
catch (DbUpdateException ex)
{
Console.WriteLine(ex);
}
}
我认为您尝试使用unitofwork !!!
您的意思是这个吗?
listOfFiles = GetListOfFiles()
.Where(e => pairedValues.Select( x => x.FileName).ToList().Contains(e.fileName))
.ToList();
foreach(var file in listOfFiles){
file.StartTime = pairedValues.where(x=> x.FileName == file.fileName).FirstOrDefault().StartTime;
file.EndTime = pairedValues.where(x=> x.FileName == file.fileName).FirstOrDefault().EndTime;
}