Кодировать первые столбцы с типом 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());
    }

тогда я в бизнесе, и я получаю