2016-05-31 53 views
1
public class Sale 
{ 
    public int SaleId { get; set; } 
    public Comment Comment { get; set; } 
} 

public class Comment 
{ 
    public int CommentId { get; set; } 
    public int SaleId { get; set; } 

    public Sale Sale { get; set; } 
} 

modelBuilder.Entity<Comment>() 
    .HasRequired(s => s.Sale) 
    .WithMany() 
    .HasForeignKey(s => s.SaleId); 

然而,它有它周圍的錯誤的方式...如何設置的原則,爲可選一到一個用流利的API

public override void Up() 
{ 
    AddColumn("public.tbl_sale", "Comment_CommentId", c => c.Long()); 
    AddForeignKey("public.tbl_sale", "Comment_CommentId", "public.tbl_comment", "CommentId"); 
} 

如何解決?

回答

0

在EF中建模這種關係的標準方法是使用Shared Primary Key Association

爲了做到這一點,從取出SaleIdComment類(記住 - 在CommentId將是既PK和FK),並使用以下配置:

modelBuilder.Entity<Comment>() 
    .HasRequired(c => c.Sale) 
    .WithOptional(s => s.Comment); 
+0

你們都是正確的:我手動刪除了我數據庫並檢查了答案。謝謝你教我新東西。 – bwyn

+0

這很有道理。目前,當我使用該構建器代碼時,它會嘗試刪除CommentId列並將SaleId提升爲主鍵! –

+0

我認爲我的數據庫設計是SMELLY。 –

相關問題