代码与字符类型的第一列(36)(Code first columns with type char(

2019-08-16 23:24发布

所以我有一个用户配置模型类为SimpleMembership的一部分。 在它我需要存储存在于类型的另一个DB遗留标识符char(36) 我喜欢这个改变的东西更明智像UNIQUEIDENTIFIER但是这超出范围为今天的活动。

我现在的注解创建一个栏nvarchar(36)

[StringLength(36)]
public string UserIdentifier{ get; set; }

我想的列char(36)来代替。 这可能吗?

Answer 1:

如果你想保持与数据注释,然后只是简单地使用:

[StringLength( 36 )]
[Column( TypeName = "char" )]
public string UserIdentifier{ get; set; }


Answer 2:

好。 我找到自己的答案。

如果我创建了我的用户配置以下配置类:

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());
    }

然后我在商业和我得到一个char(36)列。 好极了。



文章来源: Code first columns with type char(36)