1
我已经在SQL ServerEF 4 - 异常时更新表时间戳列
CREATE TABLE [dbo].[Role](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](20) NOT NULL,
[CreatedDate] [datetime] NULL,
[TIMESTAMP] [timestamp] NOT NULL,
[ModifiedDate] [datetime] NULL,
CONSTRAINT [PK_TBL_ROLES] PRIMARY KEY CLUSTERED ([Id] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY].
随着EF创建在下表中,我创建了一个STE类与类型字节[]的时间戳列,其是只读的。
我使用datacontext从我的db中检索一个对象,例如
var roleObject = roleService.getObject(id);
现在我改变角色名如下
roleObject.Name = "New Name";
roleObject.ModifiedDate = DateTime.Now;
最后我把我的资料库使用以下通用方法来持久化对象
public void PersistUpdatedItem(T entity){
_ctx.ApplyCurrentValues(typeof (T).Name, entity);
_ctx.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
_ctx.SaveChanges();
}
注ctx
是我的会话对象和T是实体类。在这一点上我得到一个异常
无法更新timestamp列
是否有人可以帮助我解决这一个。
感谢
谢谢拉迪斯拉夫像一颗宝石一样工作。 – 2011-05-22 14:50:53