Кодировать первые столбцы с типом char (36)
таким образом, у меня есть класс модели UserProfile как часть SimpleMembership. В нем мне нужно сохранить устаревший идентификатор, который существует в другой БД типа char(36)
. Я хотел бы изменить это на что-то более разумное, как uniqueIdentifier, но это выходит за рамки сегодняшней деятельности.
моя текущая аннотация создает столбец nvarchar(36)
[StringLength(36)]
public string UserIdentifier{ get; set; }
Я хотел бы колонна char(36)
вместо. Возможно ли это?
2 ответов
Если вы хотите сохранить аннотации данных, просто используйте:
[StringLength( 36 )]
[Column( TypeName = "char" )]
public string UserIdentifier{ get; set; }
Ok. Я сам нашел ответ.
если я создам следующий класс конфигурации для моего UserProfile:
class UserProfileConfiguration:EntityTypeConfiguration<UserProfile>
{
public UserProfileConfiguration()
{
this.Property(p => p.UserIdentifier)
.HasMaxLength(36)
.IsFixedLength()
.IsUnicode(false);
}
}
затем переопределить OnModelCreating
в своем DbContext
чтобы добавить эту конфигурацию:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new UserProfileConfiguration());
}
тогда я в бизнесе, и я получаю