我有一個Article
,它有一個User
表的創建者和修飾符。這裏是模型:如何在兩個表之間建立兩個關係?
public class Article
{
public int ArticleId { get; set; }
public string Name { get; set; }
public int UserId { get; set; }
public int ModifierId { get; set; }
public virtual User User { get; set; }
public virtual User Modifier { get; set; }
}
這裏是User
型號:
public class User
{
public int UserId { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string Name { get; set; }
public bool IsActive { get; set; }
public virtual List<Article> Articles { get; set; }
}
而且我已經試過這樣:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Article>().HasRequired(c => c.User).WithMany(u => u.Articles).HasForeignKey(c => c.UserId);
modelBuilder.Entity<Article>().HasRequired(c => c.Modifier).WithMany(u => u.Articles).HasForeignKey(c => c.ModifierId);
Database.SetInitializer<Context>(null);
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
但錯誤是:
指定的模式無效。錯誤:關係 'Portal.Infrastructure.Repository.Article_User'未加載,因爲 'Portal.Infrastructure.Repository.User'類型不可用。
我使用EF6代碼優先和.net4.5
還算可以,但你不能使用偷懶在用戶中加載。 – Iraj
@Iraj是的,你是對的。所以這不可能是一個完美的答案。 –