2013-02-14 10 views
8

私はSimpleMembershipの一部としてUserProfileモデルクラスを持っています。その中には、タイプchar(36)の別のDBに存在するレガシー識別子を格納する必要があります。これをuniqueIdentifierのようなより賢明なものに変更したいのですが、それは今日の活動の対象外です。タイプchar(36)のコードの最初のカラム

私の現在の注釈がnvarchar(36)

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

列を作成する私の代わりにchar(36)の列をしたいと思います。これは可能ですか?

+0

これに対する答えを[質問](http://stackoverflow.com/questions/6760765/how-do-i- map-a-char-property-using-entity-framework-4-1-code-only-fluent-a)が役に立ちます。 – zsong

+0

@szaいいえ、それはありませんでした。私は方法を発見しました。とにかくありがとう。 – spender

答えて

13

[データ注釈を維持したい場合は、単に使用します。

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

私は自分自身で答えを見つけました。

私は私のUserProfileのために以下の構成クラスを作成した場合:

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

を、この設定を追加するために、私のDbContextOnModelCreatingを上書き:

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

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

は、私はビジネスでだと私は取得char(36)カラム。わーい。

+0

いい仕事です。解決済みとマークすることを忘れないでください! – jurgemaister

関連する問題