spe*_*der 9 entity-framework data-annotations entity-framework-5
所以我有一个UserProfile模型类作为SimpleMembership的一部分.在其中我需要存储另一个类型的DB中存在的遗留标识符char(36).我喜欢把它改成像一个独特的标识更合理的东西,但这超出了今天的活动范围.
我当前的注释创建了一个列 nvarchar(36)
[StringLength(36)]
public string UserIdentifier{ get; set; }
Run Code Online (Sandbox Code Playgroud)
我想要一列char(36)代替.这可能吗?
krz*_*chu 13
如果您想继续使用Data Annotations,那么只需使用:
[StringLength( 36 )]
[Column( TypeName = "char" )]
public string UserIdentifier{ get; set; }
Run Code Online (Sandbox Code Playgroud)
好.我自己找到了答案.
如果我为UserProfile创建以下配置类:
class UserProfileConfiguration:EntityTypeConfiguration<UserProfile>
{
public UserProfileConfiguration()
{
this.Property(p => p.UserIdentifier)
.HasMaxLength(36)
.IsFixedLength()
.IsUnicode(false);
}
}
Run Code Online (Sandbox Code Playgroud)
然后OnModelCreating在我的覆盖中DbContext添加此配置:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new UserProfileConfiguration());
}
Run Code Online (Sandbox Code Playgroud)
然后我在做生意,我得到一个char(36)专栏.好极了.
| 归档时间: |
|
| 查看次数: |
5619 次 |
| 最近记录: |