2016-02-26 76 views
0

如何在沒有其父項的鍵時映射導航屬性?實體框架6一對一導航屬性

我的意思是

有一類合同。 這是銷售產品的合同,需要產品存在。 TB_Contract包含ProductId。 該產品沒有合同,TB_product上沒有ContractId。

在某些情況下,該產品可以在多個合同中,這就是爲什麼它已經在bd中建模爲多對一。但是在我們的課程中,它必須是一對一的

public class Contract 
{ 
    ... 
    public Product Product { get; set; } 
    ... 
} 

public class Product 
{ 
    ... 
    public Contract Contract { get; set; } 
    ... 
} 

table tb_Contract 
(
    idContract, 
    idProduct 
) 

table tb_Product 
(
    idProduct, 
    description, 
) 

我想要我的課程產品具有鏈接到的合同,如果有的話。

我先使用代碼。如何將其映射到EF6上?

回答

0

沒有辦法將此映射爲一對一關聯。這是一個一對多協會設計。所以如果有的話,設計應該改變,以使其一對一。

實體框架通過a foreign key that's also a primary key模擬一對一關聯。任何其他的一對一關聯方式都是通過業務邏輯強制實施的。

在代碼中,這意味着Product有一個Orders的集合和一個檢查此集合中項目數的驗證規則。