У меня есть этот объект карты для Entity Framework:Как остановить EF, пытающуюся обновить вычисленный столбец для SQL Server?
public WordDefinitionMap(string schema)
{
ToTable(schema + ".WordDefinition");
HasKey(x => x.WordDefinitionId);
Property(x => x.WordDefinitionId).HasColumnName(@"WordDefinitionId").IsRequired().HasColumnType("int").HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity);
Property(x => x.WordFormId).HasColumnName(@"WordFormId").IsRequired().IsUnicode(false).HasColumnType("varchar").HasMaxLength(20);
Property(x => x.Ascii).HasColumnName(@"Ascii").IsOptional().HasColumnType("int").HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Computed);
// Foreign keys
HasRequired(a => a.WordForm).WithMany(b => b.WordDefinitions).HasForeignKey(c => c.WordFormId); // FK_WordDefinitionWordForm
}
public class WordDefinition
{
public int WordDefinitionId { get; set; } // WordDefinitionId (Primary key)
public string WordFormId { get; set; } // WordFormId (length: 20)
public int? Ascii { get; set; } // Ascii
// Foreign keys
public virtual WordForm WordForm { get; set; } // FK_WordDefinitionWordForm
}
Когда я использую Entity Framework, чтобы попытаться обновить этот объект, я получаю исключение, говоря:
The column "Ascii" cannot be modified because it is either a computed column or is the result of a UNION operator.
Я думал, что я уже инструктажа EF чтобы игнорировать это свойство, но, похоже, оно все еще пытается обновить его, даже если оно равно null. Есть ли способ изменить отображение так EF не устанавливает этот объект?
После этого вы просто удалите следующую конфигурацию 'HasDatabaseGeneratedOption (System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Computed);' на конфигурации Ascii – CodeNotFound
Разве это не инструкция, которая сообщает (или должна сказать) EF не трогать эта колонка? Вы предлагаете мне удалить это и что бы я его заменил? Спасибо –
Потому что свойство Accii не является первичным ключом. EF рассмотрит это свойство как невырожденное свойство. – CodeNotFound