簡體   English   中英

實體框架6-有什么方法可以從DbContext.SaveChanges()獲取新的rowversion?

[英]Entity Framework 6 - Is there any way to get new rowversion from DbContext.SaveChanges()?

var ctxLog = new List<string>();
var accountToUpdate = sAccount.ToEntity();

// sAccount is DTO !

ctx.accounts.Attach(accountToUpdate);
ctx.Entry(accountToUpdate).State = EntityState.Modified;

accountToUpdate.dt_stamp = BllUtils.GetServerDateTime(ctx); 

var log = ctxLog;
ctx.Database.Log = s => log.Add(s);
ctx.SaveChanges();

在上面的SaveChanges()之后的代碼中, accountToUpdate.rowversion仍然是舊的。

有沒有一種方法可以在不對數據庫運行新查詢的情況下獲取新的rowversion值?

保存更改后, ctx.Entry(accountToUpdate).GetDatabaseValues(); 並檢查accountToUpdate.rowversion值是否已更改。 這可能有效

在EF的StoreGeneratedPattern版本中,我在字段上使用StoreGeneratedPattern屬性。 這將在插入/更新后獲取內容。 我真的不知道是否會導致另一次往返。 您可以在此博客文章中找到更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM