2016-12-29 124 views
0

我在SQL 用戶兩個表,並UserDefaultModel我有外鍵關聯無法創建EF外鍵映射

<AssociationConnector Association="Ins_PricingDBModel.FK_UserDefaultModel_Users" 
    ManuallyRouted="false" /> 

我需要實現使用模型構建器此相同的映射。這是我已經嘗試過

modelBuilder.Entity<UserDefaultModel>() 
      .HasRequired(c=>c.User) 
      .WithMany() 
      .HasForeignKey(c => c.Id); 

public class UserDefaultModel : Entity 
{ 

    public string DefaultModel { get; set; } 
    public virtual User User { get; set; } 
} 

但我仍然無法映射values.Is語法是否有效?

+1

'.HasForeig nKey(c => c.Id)'可能不是你想要的。要麼刪除它,在這種情況下,EF會爲您保留'User_Id'列,或者添加'public int UserId {get;組; }'在'UserDefaultModel'中並使用'.HasForeignKey(c => c.UserId)''。 –

回答

0

模型應該是這樣的:

public class User 
{ 
    public User() 
    { 
    } 

    public int UserId { get; set; } 
    public int UserDefaultModelId { get; set; } 

    public virtual UserDefaultModel UserDefaultModel { get; set; } 
} 

public class UserDefaultModel 
{ 
    public UserDefaultModel() 
    { 
     Users = new List<User>(); 
    } 

    public int UserDefaultModelId { get; set; } 

    public virtual ICollection<User> Users { get; set; } 
} 

還有一到多用流利的API

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    //one-to-many 
    modelBuilder.Entity<User>() 
       .HasRequired<UserDefaultModel>(s => s.UserDefaultModel) // User entity requires UserDefaultModel 
       .WithMany(u => u.Users); // UserDefaultModel entity includes many User entities 

} 
  1. 用戶實體要求UserDefaultModel
  2. UserDefaultModel實體包括許多用戶