当我在tablecontroller上执行修补程序(updateasync)时,我收到以下错误:
iisexpress.exe Error: 0 : Message='The client is attempting to use optimistic concurrency in
connection with updates and inserts but the current 'SimpleMappedEntityDomainManager`2'
implementation does not set the original version required to support this. Please implement the
method 'SetOriginalVersion' and provide the original value.',
Id=00000000-0000-0000-5d00-0080000000ff, Category='App.Controllers.Tables'
我正在使用MappedEntityDomainManager,因为我已经连接了一个预先存在的数据库。
查找并插入所有工作正常。
答案 0 :(得分:1)
尝试使用以下方法更新SimpleMappedEntityDomainManager<TDTO, TModel>
实施:
protected override void SetOriginalVersion(TModel model, byte[] version)
{
this.context.Entry(model).OriginalValues["Version"] = version;
}
其中"Version"
是模型类中属性的名称,用于存储项目的版本(通常为timestamp
类型)
如果您的数据库中没有存储版本的任何属性(映射到传出DTO中的Version
或__version
属性),那么您可以使用空覆盖:
protected override void SetOriginalVersion(TModel model, byte[] version)
{
}
我无法找到此功能的任何文档,因此我将此问题转发给产品团队以便更正。