Используйте тип данных 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();