2011-11-29 79 views
1

(因爲我有一個預定義的數據庫,我不能讓EF重新創建它)。EF 4.2代碼首先,如何使用流暢的API進行映射?

我現在用的(作品,但我想用流利的API來重寫)的映射:

public class League 
{   
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid LeagueId { get; set; } 
    .... 
    #region References 

    public virtual ICollection<News> News { get; set; } 

    #endregion 
} 

public class News 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid NewsId { get; set; } 
    public Guid LeagueId { get; set; } 
    .... 
    #region References 

    [ForeignKey("LeagueId")] 
    public virtual League League { get; set; } 

    #endregion 
} 

現在,如何可以使用流利的API映射我這個?

更新 寫了這個,它的工作原理,但有一個更簡單的版本?

modelBuilder.Entity<League>().HasMany(x => x.News).WithRequired(y => y.League).HasForeignKey(c => c.LeagueId); 

更新2 我說那些來自班失蹤。但問題是,如果我放棄它並嘗試它,它會失敗。我需要在某處指定一個鍵。我不能讓EF創建數據庫,它拒絕只用表操作。

+1

更簡單的版本是什麼也不做,讓約定創建關係。使用Fluent API,您的更新就是答案。順便說一句:你在'....'中隱藏了太多的東西來正確回答你的問題。 「聯賽」類中的「新聞」屬性在哪裏,「新聞」類中的「聯盟ID」在哪裏?現在只有您的更新清楚。 – Slauma

+0

更新了缺少的信息。問題是EF不會創建表格。它想要訪問它不能擁有的整個數據庫。 – Patrick

+0

問題是什麼?我更新後丟失2. –

回答