EF 数据版本号,处理具体使用方法 RowVersion / Timestamp 使用方法。进行自动处理并发修改
Posted on 2017-11-29 11:39 WebEnh 阅读(1848) 评论(0) 编辑 收藏 举报/* * <div class="form-group"> // 原始 * <div class="form-group hidden"> // 修改后 * * * 原始: @Html.EditorFor(model => model.RowVersion, new { htmlAttributes = new { @class = "form-control" } }) * 修改后:@Html.HiddenFor(model => model.RowVersion, new { htmlAttributes = new { @class = "form-control" } }) */
生成的页面,进行替换操作。同样适用于 Timestamp
/// <summary> /// 数据行版本号 /// </summary> [Display(Name ="数据行版本号")] [Timestamp] public byte[] RowVersion { get; set; }
或
/// <summary> /// 数据行版本号 /// </summary> [Display(Name ="数据行版本号")] [Timestamp] public byte[] Timestamp { get; set; }
如果发生异常,表示版本不一至。
如:
#region 修改数据时,如果行版本不一至,则报错,内容为:数据版本不一至,请返回重新进入再修改! private static readonly Exception _DbUpdateConcurrencyException = new Exception("数据版本不一至,请返回重新进入再修改!"); /// <summary> /// 修改数据时,如果行版本不一至,则报错,内容为:数据版本不一至,请返回重新进入再修改! /// </summary> public static Exception DbUpdateConcurrencyException { get { return _DbUpdateConcurrencyException; } } private static readonly Exception _OptimisticConcurrencyException = new Exception("未设置行版本!"); /// <summary> /// 未设置行版本!当更新操作违反并发约束时,就会引发此异常。 /// </summary> public static Exception OptimisticConcurrencyException { get { return _OptimisticConcurrencyException; } } #endregion public override async Task<int> SaveChangesAsync() { try { int result = await base.SaveChangesAsync(); return result; } catch (DbUpdateConcurrencyException) { throw RowVersionHelper.DbUpdateConcurrencyException; } catch (OptimisticConcurrencyException) { throw RowVersionHelper.OptimisticConcurrencyException; } }
可以处理这个异常,进行自定义处理以给用户弹出友好提示。
<div class="form-group"> // 原始
<div class="form-group hidden"> // 修改后
原始: @Html.EditorFor(model => model.RowVersion, new { htmlAttributes = new { @class = "form-control" } })
修改后:@Html.HiddenFor(model => model.RowVersion, new { htmlAttributes = new { @class = "form-control" } })
转自:http://Www.CnBlogs.Com/WebEnh/
如果想下次快速找到我,记得点下面的关注哦!
本博客Android APP 下载 |
![]() |
支持我们就给我们点打赏 |
![]() |
支付宝打赏 支付宝扫一扫二维码 |
![]() |
微信打赏 微信扫一扫二维码 |
![]() |
如果想下次快速找到我,记得点下面的关注哦!