Используйте тип данных nvarchar в SQL Server CE с первым кодом EF

Я использую SQL Server CE с EF-кодом в первую очередь. У меня есть следующий класс домена:

public class User:BaseEntity
{
    public User()
    {
        this.UserForms = new List<UserForm>();
        IsAdmin = false;
        IsActive = true;
    }

    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
    public bool IsAdmin { get; set; }
    public bool IsActive { get; set; }

    public virtual ICollection<UserForm> UserForms { get; set; }
}

и следующий класс отображения:

 public class UserMap : EntityTypeConfiguration<User>
 {
        public UserMap()
        {
            // Primary Key
            this.HasKey(t => t.Id);

            // Properties
            this.Property(t => t.FirstName)
                .HasMaxLength(25)
                .IsRequired();

            this.Property(t => t.LastName)
                .HasMaxLength(30)
                .IsRequired();

            this.Property(t => t.UserName)
                .HasMaxLength(10)
                .IsRequired();

            this.Property(t => t.Password)
                .HasMaxLength(30)
                .IsRequired();
        }
    }

EF создает для меня следующую таблицу:

EF использовать ntext вместо nvarchar создавать таблицы и при запуске приложения я получаю следующую ошибку:

Типы данных ntext и image нельзя использовать в предложениях WHERE, HAVING, GROUP BY, ON или IN, кроме случаев, когда эти типы данных используются с предикатами LIKE или IS NULL

Как я могу решить эту проблему?

1 ответ

Вы пытались форсировать тип столбца?

this.Property(t => t.FirstName)
.HasColumnType("nvarchar")
.HasMaxLength(25)
.IsRequired();
Другие вопросы по тегам