所以我有一个UserProfile模型类作为SimpleMembership的一部分。在其中,我需要存储另一个char(36)
类型的数据库中存在的旧标识符。我喜欢把它改成像一个独特的标识符更合理的东西,但这超出了今天活动的范围。
我当前的注释会创建一列nvarchar(36)
[StringLength(36)]
public string UserIdentifier{ get; set; }
我想要一列char(36)
代替。这可能吗?
答案 0 :(得分:13)
如果您想继续使用数据注释,只需使用:
[StringLength( 36 )]
[Column( TypeName = "char" )]
public string UserIdentifier{ get; set; }
答案 1 :(得分:7)
确定。我自己找到了答案。
如果我为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());
}
然后我开始营业,我得到一个char(36)
专栏。耶。