0
比如我有Poduct
實體:如何在同一實體上創建多對多關係?
public class Product : DatabaseEntity
{
public int Id {get; set;}
public int Name {get; set;}
public decimal Price {get; set;}
...
}
的想法是,我想創建同類產品對產品的可編輯的集合。因此,它是像許多到很多,但在同一個實體 - 產品像下面所以我更新我的模型:
public class Product : DatabaseEntity
{
public int Id {get; set;}
public int Name {get; set;}
public decimal Price {get; set;}
public ICollection<Product> SimilarProducts { get; private set; }
public void AddSimilar(Product product)
{
SimilarProducts.Add(product);
}
...
}
我也更新了我的DbContext
類:
modelBuilder.Entity<Product>()
.HasMany(p => p.SimilarProducts)
.WithOptional()
.WillCascadeOnDelete(false);
執行編輯產品行動:
public ActionResult Edit(ProductEditModel productEditModel)
{
if(!string.IsNullOrEmpty(productEditModel.SelectedSimilarProductLinkName))
{
var similarProduct = _productRepository.GetProduct(productEditModel.SelectedSimilarProductId);
product.AddSimilar(similarProduct);
}
_productRepository.AddProduct(product);
}
空隙IProductRepository.AddProduct(產品產品);
public void AddProduct(Product product)
{
_repository.InsertOrUpdate(product);
}
,但我得到了奇怪的結果:以產品加入Product_Id
場在我的數據庫並沒有如ProductProduct
表或類似的東西存儲相關產品的ID,如平常多了許多實體實現。我如何手動創建這個表格?我錯過了什麼或者錯在哪裏?
看看這裏http://stackoverflow.com/questions/5102930/how-to-do-many-to-many-with-the-same-table-with-ef4-code-first – Swell
@Swell,謝謝你的建議。 – Dmytro