2012-07-28 44 views
0

型號:一個用流利的API一個關係

public class User { 
    public Guid UserId { get; set; } 
    public string UserName { get; set; } 
    public virtual Membership Membership { get; set; } 
} 

public class Membership { 
    public Guid UserId { get; set; } 
    public DateTime CreateDate { get; set; } 
} 

的DbContext:

public class UsersContext : DbContext { 
    public UsersContext() : base("ApplicationServices") { } 
    public DbSet<User> Users { get; set; } 
    public DbSet<Membership> Memberships { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) { 
     modelBuilder.Entity<User>().ToTable("aspnet_Users"); 
     modelBuilder.Entity<Membership>().ToTable("aspnet_Membership"); 

     //insert relation here to join the two tables 
    } 
} 

這是我第一天用流利的API玩耍,我只是想知道我怎麼將能夠加入這兩個表格。我將如何定義關係?

另外,流利的API的任何教程已經幫助你?

回答

1

你可以使用下面的代碼示例:

modelBuilder.Entity<User>() 
       .HasRequired(u=>u.Membership) 
       .WithOptional() 
       .HasForeignKey(u=>u.UserId) 
+1

上了車HasForeignKey「System.Data.Entity.ModelConfiguration.Configuration.ForeignKeyNavigationPropertyConfiguration」的錯誤不包含「HasForeignKey」,沒有擴展方法的定義'HasForeignKey'接受類型'System.Data.Entity.ModelConfiguration.Configuration.ForeignKeyNavigationPropertyConfiguration'的第一個參數可以找到(你是否缺少使用指令或程序集引用?) – theStig 2012-07-29 18:47:52

+0

好的。不要使用HasForeignKey(u => u.UserId)。當你有一對多的關係時你需要它。 EntityFramework將使用可選表的Key作爲外鍵(在這個例子中 - 它將是用戶的關鍵) – 2012-07-29 22:26:07

+0

是的,謝謝你的伎倆,這也適用:modelBuilder.Entity ().HasOptional(u => u .Membership).WithRequired(); – theStig 2012-07-30 00:21:58

相關問題