私はMVCでEFコードファーストを使用して始めて、何かで困惑しています。 - 製品
表 - Products.ProductID上RelatedProductsEFコード最初に多対多の自己参照関係を持つ
1対多 - > RelatedProducts.ProductID
表:私は、次のDB構造を(申し訳ありませんが、私は残念ながら画像を投稿することが許されなかった)持っています1-Many on Products.ProductID-> RelatedProducts.RelatedProductID
基本的に私はそれに関連する一連の製品を持つことができる製品を持っています。これらは、RelatedProductsテーブルに、関連商品のProductIDとProductIDで定義された関係で保持されます。関連商品の名前はRelatedProductIDです。私は、使用してコードでこれらにアクセスしよう
public class MyDBEntities : DbContext
{
public DbSet<Product> Products { get; set; }
public DbSet<RelatedProduct> RelatedProducts { get; set; }
}
public class Product
{
public Guid ProductID { get; set; }
public string Name { get; set; }
public string Heading { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
public Guid CategoryID { get; set; }
public string ImageURL { get; set; }
public string LargeImageURL { get; set; }
public string Serves { get; set; }
public virtual List<RelatedProduct> RelatedProducts { get; set; }
}
public class RelatedProduct
{
public Guid ProductID { get; set; }
public Guid RelatedProductID { get; set; }
public virtual Product Product { get; set; }
public virtual Product SimilarProduct { get; set; }
}
:
myDB.Products.Include("RelatedProducts").Where(x => x.ProductID == productID).FirstOrDefault();
をしかし、私は次のエラーを取得しておいてください。
{"Invalid column name 'ProductProductID2'.\r\nInvalid column name 'ProductProductID2'.\r\nInvalid column name 'ProductProductID'.\r\nInvalid column name 'ProductProductID1'.\r\nInvalid column name 'ProductProductID2'."}
何私のコードでは、私は次のクラスを生産しています私は間違っている?私は基本的に製品を入手してからRelatedProductsを繰り返し、その製品情報を表示したいと考えています。
Product.ProductIDとRelatedProduct.RelatedProductIDの関係に削除をカスケードすることはできませんので注意してください。これはEF4の制限ではありません。サイクリックカスケード削除を防止する必要があります。 – anon
また、関係は対称ではありません。 product1がproduct2に関連して追加された場合、product2はproduct1に自動的に関連付けられません! – anon
素晴らしい、それは完璧に働いた、それのために、年齢のためにこれをやろうとしている! – knappster