我有以下表,EF 4.1流利API分貝第一關係映射問題
- 產品(pro_iIDX [PK],pro_sName)
- 製造商(man_iIDX [PK],man_sName)
- ProductManufacturer( pma_iIDX [PK],pma_iProductRef [FK],pma_iManufacturerRef [FK],pma_bAvailable)
我有以下波蘇斯,
public class ProductInfo
{
public int IDX { get; set; }
public string Name { get; set; }
public virtual ICollection<ProductManufacturerInfo> C0ProductManufacturers
{ get; set; }
}
public class ManufacturerInfo
{
public int IDX { get; set; }
public string Name { get; set; }
public virtual ICollection<ProductManufacturerInfo> C0ProductManufacturers
{ get; set; }
}
public class ProductManufacturerInfo
{
public int IDX { get; set; }
public bool Available { get; set; }
public virtual ManufacturerInfo C0Manufacturer { get; set; }
public virtual ProductInfo C0ProductInfo { get; set; }
}
我已經使用沒有成功以下映射,
public ProductManufacturerConfiguration()
{
ToTable("ProductManufacturer");
HasKey(p => p.IDX);
Property(p => p.IDX).HasColumnName("pma_iIDX");
Property(p => p.Available).HasColumnName("pma_bAvailable");
Property(p => p.ProductRef).HasColumnName("pma_iProductRef");
Property(p => p.ManufacturerRef).HasColumnName("pma_iManufacturerRef");
//I have tried
HasRequired(p => p.ManufacturerInfo)
.WithMany(c => c.C0ProductManufacturers)
.Map(m => m.MapKey("pma_iManufacturerRef"));
HasRequired(p => p.ProductInfo)
.WithMany(c => c.C0ProductManufacturers)
.Map(m => m.MapKey("pma_iProductRef"));
//As well as
HasRequired(p => p.C0Manufacturer)
.WithMany(c => c.C0ProductManufacturers)
.HasForeignKey(p => p.ManufacturerRef);
HasRequired(p => p.C0Product)
.WithMany(c => c.C0ProductManufacturers)
.HasForeignKey(p => p.C0Product);
}
從我的考驗,dB一抱怨找不到ManufacturerInfo_IDX
當我執行以下,
var query = from p in _context.Product
select p;
如果我第一次去的代碼路線,將創建以下表,
ProductManufacturer(
pma_iIDX[PK],
pma_iProductRef,
pma_iManufacturerRef,
pma_bAvailable,
ManufacturerInfo_IDX,
ProductInfo_IDX)
任何援助將是非常的應用reciated。
什麼代碼,當你有例外,你真正執行?你的'ProductManufacturerConfiguration'甚至不能用你上面提供的POCO類來編譯。你能編輯你的問題,以明確什麼是沒有工作的代碼? – Slauma 2011-04-09 15:58:48