2013-06-14 62 views
6

Tôi có một người dùng Role nhiều-nhiều mối quan hệ, theo quy định của đoạn trích này từ một lớp học có nguồn gốc EntityTypeConfiguration<Role> cho phép tôi specifiy schemas cho các bảng duy nhất, ví dụ:Làm thế nào để xác định một lược đồ cho một bảng quan hệ nhiều-nhiều?

[Schema(SchemaNames.ParkPay)] 
class WeekDayConfig : EntityTypeConfigurationWithSchema<WeekDay> 
{ 
    internal WeekDayConfig() 
    { 
     Ignore(t => t.IsDeleted); 
     Property(p => p.Name) 
      .IsRequired() 
      .HasMaxLength(20); 
    } 
} 

Bây giờ, cho Role, cấu hình lớp chứa mã này, và bảng kết quả UserRole được tạo theo lược đồ 'dbo', không phải lược đồ mong muốn của tôi. Đây là mã rằng:

[Schema(SchemaNames.ParkPay)] 
internal class RoleConfig : EntityTypeConfigurationWithSchema<Role> 
{ 
    public RoleConfig() 
    { 
     HasMany(t => t.Users) 
      .WithMany(t => t.Roles) 
      .Map(m => 
        { 
         m.ToTable("UserRole");        
         m.MapLeftKey("RoleId"); 
         m.MapRightKey("UserId"); 
        }); 
    } 
} 

Có bất cứ điều gì tôi có thể làm, ngoại trừ kịch bản thay đổi schema trong giai đoạn hạt giống khởi tạo, để có bảng UserRole tạo thuộc schema 'parkpay' chứ không phải 'dbo' schema?

+2

Bạn đã thử này? Dường như quá tải của 'ToTable': http://stackoverflow.com/questions/6028375/entity-framework-code-first-many-to-many-setup-for-existing-tables – rliu

Trả lời

10

Tôi không thấy lý do tại sao điều này sẽ không làm việc:

public RoleConfig() 
{ 
    HasMany(t => t.Users) 
    .WithMany(t => t.Roles) 
    .Map(m => 
    { 
     m.ToTable("UserRole","parkpay");        
     m.MapLeftKey("RoleId"); 
     m.MapRightKey("UserId"); 
    }); 
} 
+1

Tôi cũng vậy, và tôi . Cảm ơn, tôi đã bỏ lỡ tình trạng quá tải đó. – ProfK

+0

Có cách nào để DataAnnotations thực hiện việc này không? – RoLYroLLs

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