2013-02-14 26 views
8

Vì vậy, tôi có một lớp mô hình UserProfile như là một phần của SimpleMembership. Trong đó, tôi cần lưu trữ số nhận dạng kế thừa tồn tại trong một DB khác thuộc loại char(36). Tôi rất muốn thay đổi điều này thành một cái gì đó hợp lý hơn như một trình định danh duy nhất nhưng nó không nằm trong phạm vi cho các hoạt động của ngày hôm nay.Mã cột đầu tiên với loại char (36)

chú thích hiện tại của tôi tạo ra một cột nvarchar(36)

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

Tôi muốn một cột của char(36) để thay thế. Điều này có thể không?

+0

Câu trả lời cho điều này [câu hỏi] (http://stackoverflow.com/questions/6760765/how-do-i- map-a-char-property-using-the-entity-framework-4-1-code-only-fluent-a) có thể hữu ích. – zsong

+0

@sza Không phải vậy. Tôi tìm thấy một cách. Dù sao cũng cảm ơn bạn. – spender

Trả lời

13

Nếu bạn muốn giữ lại với dữ liệu chú thích, sau đó chỉ đơn giản là sử dụng:

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

Ok. Tôi tự tìm ra câu trả lời.

Nếu tôi có thể tạo các lớp cấu hình sau đây cho UserProfile tôi:

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

sau đó ghi đè OnModelCreating trong DbContext tôi để thêm cấu hình này:

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

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

thì tôi trong kinh doanh và tôi nhận được một char(36) cột. Yay.

+0

Làm tốt lắm. Hãy nhớ đánh dấu nó là đã giải quyết! – jurgemaister

Các vấn đề liên quan