2012-11-15 47 views
0

我使用實體框架和代碼優先映射到遺留數據庫(我知道,如果我已經建立了數據庫,那麼我應該「數據庫優先」的方法,但一些如何填寫更好的註釋,而不是處理對設計器的控制),其中有一個表有一個指向另一個表的鍵(它實際上是另一個表中的表的同義詞)一個外鍵,但它實際上並沒有在表模式中定義。只有邏輯外鍵在代碼優先的力映射

問題是:我可以強制這種關係存在於我的POCO類嗎?我可以使用Fluent API進行映射嗎?這可能嗎?

像往常一樣,在此先感謝!

回答

0

當然,您可以通過流暢的映射或數據註釋手動定義外鍵和導航屬性。

比方說,我有一個Parent表字段CatCode和一個指向表Category在第二數據庫的代名詞CategoryEx。在一個上下文中都有相應的類和DbSet。其中Parent看起來像

public ParentMap() 
{ 
    this.HasKey(t => t.Id); 
    this.HasRequired(p => p.Category).WithMany().HasForeignKey(p => p.CatCode); 
    ... 
} 

public CategoryMap() 
{ 
    this.HasKey(t => t.CatCode); 
    this.ToTable("CategoryEx"); 
    ... 
} 

public class Parent 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string CatCode { get; set; } 
    ... 
    public Category Category { get; set; } 
} 
的映射(從 EntityTypeConfiguration派生)可能看起來像(構造函數)