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