首先插入一个到多个代码

时间:2016-11-10 09:56:11

标签: asp.net asp.net-mvc

我想在db中插入因子,任何因子都有客户ID。

我有两节课

public class Customer
    {

        [Key, ForeignKey("Factor")]
        public int Id { get; set; }

        [Required]
        public string Name { get; set; }

        [Required]
        public string LastName { get; set; }

        public Gender Gender { get; set; }

        [Required]
        public string Mobile { get; set; }

        public virtual ICollection<Factor> Factor { get; set; }

    }

    public class Factor
    {
        public int ID { get; set; }

        [Required]
        public string Name { get; set; }

        public DateTime Date { get; set; }

        public virtual Customer Customer { get; set; }

        public virtual ICollection<FactorDetails> FactorDetails { get; set; }

        public virtual FactorType FactorType { get; set; }

    }

我为这两个类创建了modelview,

public class CreateFactorViewModel
{
    public Factor Factor { get; set; }
    public int CustomerId { get; set; }
}

在创建视图中,我添加新因子并从下拉列表中选择一个客户。 在创建控制器中,我想添加CustomerId以计算客户ID

    public ActionResult Create(CreateFactorViewModel model)
    {

        if (ModelState.IsValid)
        {
            model.Factor.Customer = new Customer { Id = model.CustomerId };

             db.Factors.Add(model.Factor);

            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View();
    }

但我收到此错误

  

一个或多个实体的验证失败。看到   'EntityValidationErrors'属性以获取更多详细信息。

我知道客户属性发生了这个错误,但我不知道 我如何能够插入因子库客户ID。

你可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

您可以通过自己的方式解决问题

try
{
 db.SaveChanges(); //put your DbContext here
}
 catch (Exception exception)
 {
   var sss = exception; //Put a break point here
 }

现在分析异常。你会通过检查 InnerExcetion 大多数情况找到你的问题

答案 1 :(得分:0)

来自用户提问, 你应该声明一个ForeignKey

从此代码更改类

    public class Factor
    {
        ...
        [ForeignKey("Customer")]
        public int Customer_Id { get; set; }
        ...
}

  public ActionResult Create(CreateFactorViewModel model)
    {

        if (ModelState.IsValid)
        {
             model.Factor.Customer_Id = model.CustomerId;

             db.Factors.Add(model.Factor);

            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View();
    }