2016-04-11 75 views
1

我想在EF Code First中添加交點表,並且始終獲得以下信息 - 每個表中的列名必須是唯一的。表'PRODUCTs'中的列名'Product_Unit_Product_UnitID'被多次指定。Code First中的交叉表

這是代碼:

public class PRODUCT 
{ 
    public int ProductID { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
    public decimal Price_Net { get; set; } 
    public decimal Price_Gross { get; set; } 
    public int Vat { get; set; } 
    public decimal Price_Offer_Net { get; set; } 
    public decimal Price_Offer_Gross { get; set; } 
    public bool Is_Offer { get; set; } 
    public bool Is_Lock { get; set; } 
    public OFFER Offer { get; set; } 
    public ICollection<PRICE_CUSTOMER> Price_Customer { get; set; } 
    public int CategoryID { get; set; } 
    public virtual CATEGORY Category { get; set; } 
    public int BrandID { get; set; } 
    public virtual BRAND Brand { get; set; } 
    public int StockID { get; set; } 
    public virtual STOCK Stock { get; set; } 
    public ICollection<PRODUCT_UNIT> Product_Unit_L { get; set; } 
    public int Product_UnitID { get; set; } 
    public virtual PRODUCT_UNIT Product_Unit { get; set; } 

} 

和PRODUCT_UNIT

public class PRODUCT_UNIT 
{ 
    public int Product_UnitID { get; set; } 
    public decimal Converter { get; set; } 
    public int Barcode { get; set; } 
    public ICollection<PRODUCT> Product_L { get; set; } 
    public int ProductID { get; set; } 
    public virtual PRODUCT Product { get; set; } 
    public int UnitID { get; set; } 
    public virtual UNIT Unit { get; set; } 

} 

那麼如何添加交集表中的代碼第一? 感謝所有幫助

enter image description here

回答

0

您可以指定使用數據標註屬性生成的表(和表名)的列名。 您可能還想使用key屬性明確指定主鍵列。

[Table("MyTable")] 
pulic class MyClass 
{ 
    [Key] 
    [Column("MyIdColumn")] 
    public int Id { get; set; } 
} 

但我首先嚐試的交點表的主要屬性(列)重命名爲從Product_UnitIDId。這也可以解決問題。


自動生成主鍵檢測

如果沒有顯式地指定主鍵(例如,使用key屬性或使用流暢API),EF將尋找一個名爲IdTableNameId列如這裏所解釋的:Default id naming convention in Entity framework code first