В EF5, как создать поле, которое будет считываться, но не будет вставлено или обновлено

Мне не нужна функциональность из [NotMapped] — я хочу, чтобы она считывала значение, если оно установлено, но никогда не обновляло значение. По сути, мне нужен эквивалент <property update="false" insert="false" ... /> в NHibernate.

Возможно ли это с Entity Framework?

Я пытаюсь сделать так, чтобы для столбца DateTime «CreateStamp» было установлено текущее значение DateTime при вставке.

Вот что у меня есть.

Конфигурация:

Property(s => s.CreateStamp)
            .IsRequired()
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);  

Скрипт миграции (прилагается):

CreateStamp = c.DateTime(nullable: false, defaultValueSql: "GETDATE()"),      

Свойство определено в классе как:

public DateTime?    CreateStamp { get; set; }

Генерируемый EF запрос пытается вставить NULL в столбец CreateStamp.


person Sam    schedule 24.08.2012    source источник
comment
Пожалуйста, попробуйте с DatabaseGeneratedOption.Identity вместо DatabaseGeneratedOption.Computed.   -  person nemesv    schedule 24.08.2012
comment
@nemesv Я пробовал, не повезло.   -  person Sam    schedule 25.08.2012


Ответы (1)


Звучит как значение, сгенерированное магазином. Вы можете установить для параметра StoreGeneratedPattern значение Вычисляется в это поле.

person Craig Stuntz    schedule 24.08.2012
comment
Привет Крейг. Я уже пробовал это - я только что обновил вопрос тем, что у меня есть. Он все еще пытается вставить в этот столбец. - person Sam; 25.08.2012