我想在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。
你可以帮帮我吗?答案 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();
}