Я создал следующую таблицу в SQL Server
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 со столбцом метки времени типа byte [], который доступен только для чтения.
Я получаюобъект из моей базы данных с использованием datacontext, например,
var roleObject = roleService.getObject(id);
, теперь я изменяю rolename следующим образом
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 - это класс сущности.В этот момент я получаю исключение
Невозможно обновить столбец отметки времени
Может кто-нибудь помочь мне решить эту проблему.
спасибо