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