【发布时间】:2018-01-01 19:10:52
【问题描述】:
我有以下模型:具有多对多关系。
public class Product
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
[MaxLength(50)]
public string Name { get; set; }
[Required]
public string Code { get; set; }
[MaxLength(1000)]
public string Description { get; set; }
public string ImageUrl { get; set; }
[Required]
public double Price { get; set; }
public decimal Cost { get; set; }
public bool IsActive { get; set; }
public ICollection<ProductCategory> ProductCategories { get; set; }
}
public class ProductCategory
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int? Id { get; set; }
[Required]
[MaxLength(50)]
public string Name { get; set; }
[Required]
public string Code { get; set; }
[MaxLength(1000)]
public string Description { get; set; }
public string CategoryImgeUrl { get; set; }
public ICollection<Product> Products { get; set; }
}
我想用现有的类别添加新产品,但是当我添加新产品时,我也会创建新的类别而不使用现有的。
public void Add(ProductViewModel vm)
{
try
{
if (vm.SelectedCategoryIds.Count() != 0)
{
var catList = new List<ProductCategoryViewModel>();
foreach (var item in vm.SelectedCategoryIds) {
var cat = Context.ProductCategories.Where(c=>c.Id == item).FirstOrDefault();
catList.Add(Mapper.Map<ProductCategoryViewModel>(cat));
}
vm.ProductCategories = catList;
}
var model = Mapper.Map<Product>(vm);
model.CreatedDate = DateTime.Now;
model.IsDeleted = false;
Context.Products.Add(model);
Context.SaveChanges();
}
catch (Exception ex)
{
}
}
在这里,我想添加具有现有类别的新产品。 我该如何解决这个问题?
【问题讨论】:
-
这是一个很常见的问题,你应该可以找到很多问题和答案。
标签: .net entity-framework model-view-controller mapping