9

所以我有一个 UserProfile 模型类作为 SimpleMembership 的一部分。在其中,我需要存储存在于另一个类型的数据库中的旧标识符char(36)。我很想把它改成更合理的东西,比如 uniqueIdentifier ,但这超出了今天的活动范围。

我当前的注释创建了一列nvarchar(36)

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

我想要一列char(36)代替。这可能吗?

4

2 回答 2

13

如果您想保留数据注释,那么只需使用:

[StringLength( 36 )]
[Column( TypeName = "char" )]
public string UserIdentifier{ get; set; }
于 2014-02-17T23:11:25.043 回答
8

行。我自己找到了答案。

如果我为我的 UserProfile 创建以下配置类:

class UserProfileConfiguration:EntityTypeConfiguration<UserProfile>
{
    public UserProfileConfiguration()
    {
        this.Property(p => p.UserIdentifier)
            .HasMaxLength(36)
            .IsFixedLength()
            .IsUnicode(false);
    }
}

OnModelCreating然后在 my中覆盖DbContext以添加此配置:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Configurations.Add(new UserProfileConfiguration());
    }

然后我在做生意,我得到一个char(36)专栏。耶。

于 2013-02-14T14:05:21.757 回答