我想实现中给出的解决方案中的ASP.NET MVC应用程序处理与实体框架并发 。
文章说:
添加跟踪物业部门实体
在模型\ Department.cs,添加跟踪特性:
[Timestamp] public Byte[] Timestamp { get; set; }
时间戳属性指定此列将包括更新的WHERE子句中和删除发送到数据库的命令。
由于我使用的模型第一种方法,我也跟着步骤1 - 5中所列创建与实体框架时间戳列
- 一个名为“时间戳”属性添加到实体EF模型
- 设置类型为二进制
- 可空设置为false
- 设置StoreGeneratedPattern式来计算
- 设置ConcurrencyMode固定
当我从更新数据库模型我的代码,该机型\ Department.cs现在包含
public virtual byte[] Timestamp
{
get;
set;
}
然后,我使用的元数据类指定时间戳属性:
// Metadata for Department entity
public class DepartmentMetadata
{
[Timestamp]
public byte Timestamp { get; set; }
}
Q1。 我测试是否值Timestamp
列在列的编辑的情况下,正在发生变化。 事实并非如此。
编辑1的问题,因为SQL Server列类型是引起了binary
,它应该是类型的timestamp
。 更改固定不会得到更新时间戳列问题的数据类型。
Q2。 我试图修改同一个实体(使用“打开新的标签页”)以查看是否有OptimisticConcurrencyException
被抛出。 事实并非如此。 我究竟做错了什么? 请帮我明白了,谢谢。