Код структуры сущности сначала преобразуется между логическим классом и целым числом столбца

я используюEntity Framework 5 code first, В моей таблице есть столбецActive и его тип данных имеет типint, Значения, которые хранятся в Active:01 а также .null

У меня есть класс, который мне нужно сопоставить с этой таблицей.

public class CommandExecutionServer : IEntity
{
     public int Id { get; set; }

     public bool? IsActive { get; set; }
}

Вот мой файл конфигурации. Я пытаюсь сопоставить свое логическое свойство в моем классе с целочисленным полем в базе данных.

class CommandExecutionServerConfiguration : EntityTypeConfiguration
{
     internal CommandExecutionServerConfiguration()
     {
          this.ToTable("tblCommandExecutionServers");
          this.Property(x => x.IsActive).HasColumnName("Active").HasColumnType("bit");
     }
}

Это не работает хорошо. Ошибка, которую я получаю:

The 'IsActive' property on 'CommandExecutionServer' could not be set to a 'Int32' value. You must set this property to a non-null value of type 'Boolean'

Я пытался добавить.HasColumnType("bit") и подумал, что это может занять мою проблему. Как мне это сделать? В идеале я хотел бы, чтобы 0 было ложным, 1 - истинным, ноль - нулевым, а любое другое число - ложным.

ОБНОВИТЬ

Если я изменю вышеизложенное на:

this.Property(x => x.IsActive).HasColumnName("Active").HasColumnType("int");

... тогда я получаю следующую ошибку:

Member Mapping specified is not valid. The type 'Edm.Boolean[Nullable=True,DefaultValue=]' of member 'IsActive' in type 'MyProject.Infrastructure.EntityFramework.CommandExecutionServer' is not compatible with 'SqlServer.int[Nullable=True,DefaultValue=]' of member 'Active' in type 'CodeFirstDatabaseSchema.CommandExecutionServer'.

Ответы на вопрос(2)

Ваш ответ на вопрос