![](/img/trans.png)
[英]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.