所以我有一个UserProfile模型类作为SimpleMembership的一部分。在其中,我需要存储另一个类型为char(36)
的数据库中存在的遗留标识符。我很想将其更改为更合理的东西,例如uniqueIdentifier,但这超出了今天活动的范围。
我的当前注释创建了一个nvarchar(36)
列。
[StringLength(36)]
public string UserIdentifier{ get; set; }
我希望有一列的 char(36)
。这是否可能?
所以我有一个UserProfile模型类作为SimpleMembership的一部分。在其中,我需要存储另一个类型为char(36)
的数据库中存在的遗留标识符。我很想将其更改为更合理的东西,例如uniqueIdentifier,但这超出了今天活动的范围。
我的当前注释创建了一个nvarchar(36)
列。
[StringLength(36)]
public string UserIdentifier{ get; set; }
我希望有一列的 char(36)
。这是否可能?
如果您希望继续使用数据注释,则只需简单地使用:
[StringLength( 36 )]
[Column( TypeName = "char" )]
public string UserIdentifier{ get; set; }
好的。我自己找到了答案。
如果我为我的用户配置文件创建以下配置类:
class UserProfileConfiguration:EntityTypeConfiguration<UserProfile>
{
public UserProfileConfiguration()
{
this.Property(p => p.UserIdentifier)
.HasMaxLength(36)
.IsFixedLength()
.IsUnicode(false);
}
}
然后在我的 DbContext
中覆盖 OnModelCreating
方法,并添加此配置:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new UserProfileConfiguration());
}
那我就可以开始做生意了,并且我得到了一个char(36)
列。耶。