【发布时间】:2010-08-15 09:45:18
【问题描述】:
我在 MSSQL 中有如下表定义:
CREATE TABLE [User] (
[Id] bigint identity(1,1) NOT NULL,
[Email] nvarchar(256),
[PasswordHash] nvarchar(128) NOT NULL,
[PasswordFormat] int DEFAULT ((0)) NOT NULL,
[PasswordSalt] nvarchar(10) NOT NULL,
[Timestamp] timestamp
)
;
Timestamp 的 EDMX 属性如下所示:(注意只有红色属性是我手动更改的)
我使用 t4 模板自动生成 POCO 实体。 用户实体如下所示:
public partial class User : IEntity
{
public virtual long Id
{
get;
set;
}
...
[TimestampAttribute]
[ConcurrencyCheck]
[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Justification = "Autogenerated by T4.")]
public virtual byte[] Timestamp
{
get;
set;
}
...
}
在 ObjectContext 上执行“SaveChanges”操作时,我收到名为 User 实体的验证错误:Timestamp field is required
【问题讨论】:
-
您确定 SaveChanges 的 Timestamp 字段中有值吗?
-
时间戳字段应该由 SQL 服务器更新,而不是由 RIA 客户端或服务器代码更新。我认为在元数据中排除这个字段就可以了。我会及时通知您。
-
+1 我遇到了完全相同的问题。
标签: entity-framework timestamp wcf-ria-services