要启用Optimistic Concurrency,使用Entity Framework 6对客户数据模型进行了以下更改。
之前,没有TimeStamp
:
public class Customer
{
public Guid Id { get; set; }
public string Name { get; set; }
}
之后,TimeStamp
:
public class Customer
{
public Guid Id { get; set; }
public string Name { get; set; }
[Timestamp]
public byte[] Version { get; set; }
}
基于此更改,WEB API在OData服务的响应中引入了ETag。
之前,没有TimeStamp
:
{
"@odata.context":"http://localhost:50378/$metadata#Customers/$entity",
"Id":"c16883eb-3f4b-3515-9151-caa1c9e5bfc8",
"Name":"TestSeed"
}
Afer,TimeStamp
:
{
"@odata.context":"http://localhost:50378/$metadata#Customers/$entity",
"@odata.etag":"W/\"YmluYXJ5J0FBQUFBQUFBQjlrPSc=\"",
"Id":"c16883eb-3f4b-3515-9151-caa1c9e5bfc8",
"Name":"TestSeed",
"Version":"AAAAAAAAB9k="
}
由于WEB API在响应中引入了Etag字段,
如何隐藏响应中的Version
属性?
在客户端,所有内容都通过ETag
进行管理。
它仅在服务器上,在数据访问层中,使用Version
属性。
隐藏Version
属性背后的基本原理是将我们的OData服务的外部用户暴露给属性,仅用于商业目的。
我错过了一些基本的东西
答案 0 :(得分:-2)
如果您不需要版本字段,只需将注释放在其他字段中
public class Customer
{
[TimeStamp]
public Guid Id { get; set; }
public string Name { get; set; }
}