[英]Entity Framework Core RowVersion column not updating using PostgreSQL
[英]Updating column in database using entity framework core
我在更新数据库中的记录时遇到一些问题。 我有一个代码,可以在数据库中添加数据
foreach (var todatabase in InitialAllWeights)
{
if (sd.stationSeasonNNcoefs.Count(e => e.Hours == todatabase.Hours && e.SeasonId == todatabase.SeasonId && e.StationId == todatabase.StationId) == 0)
{
sd.Add(todatabase);
}
else
{
}
}
sd.SaveChanges();
如果数据库中没有初始计数,则添加当前数据。 对于我的任务,如果计数为空,则需要添加数据,如果计数为满,则需要更新数据,但是如果计数为满,我必须仅更新一列WeightsSeason
。
public class stationSeasonNNcoef
{
public int stationSeasonNNcoefID { get; set; }
public int StationId { get; set; }
public int SeasonId { get; set; }
public string WeightsSeason { get; set; }
public int Hours { get; set; }
}
并且另一列( SeasonId, StationId, Hours
)必须保持不变。
如果这是您唯一地标识要更新的潜在记录的方法(或在找不到的情况下插入):
e.Hours == todatabase.Hours && e.SeasonId == todatabase.SeasonId && e.StationId == todatabase.StationId
然后,首先尝试获取该记录。 如果找到,请对其进行更新。 如果不是,则将其插入。 也许是这样的:
var record = sd.stationSeasonNNcoefs.SingleOrDefault(e => e.Hours == todatabase.Hours && e.SeasonId == todatabase.SeasonId && e.StationId == todatabase.StationId);
if (record == null)
{
sd.Add(todatabase);
}
else
{
record.WeightsSeason = todatabase.WeightsSeason;
}
sd.SaveChanges();
对SingleOrDefault
的调用将返回一个匹配的记录,或者如果找不到匹配的记录,则返回null
。 (注意:如果发现一个以上,它将引发异常。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.