2016-11-10 45 views
0

我想在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; } 

    } 

,我創造這兩個類模型觀察,

public class CreateFactorViewModel 
{ 
    public Factor Factor { get; set; } 
    public int CustomerId { get; set; } 
} 
在創建視圖我添加新的因素,然後從下拉列表中選擇一個客戶

。 在創建控制器我想添加客戶編號與因子客戶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

您沒有提供名稱值.as name is required –

+0

yes,i konw,但是我不知道,這種情況是正確的還是不正確? – mic

+0

沒有人可以回答我的問題嗎? – mic

回答

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(); 
    } 
0

由你自己

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

現在異常分析。你將通過檢查InnerExcetion找到你的問題大多數情況下