2016-03-03 63 views
0

我有這些生成的類:無效的列名「」調用的SaveChanges()時

public partial class BookCategoryMapping 
{ 
    public int Id { get; set; } 
    public int CategoryPropertyId { get; set; } 
    public int GroupId { get; set; } 
    public string Value { get; set; } 
    public int OperatorId { get; set; } 

    public virtual CategoryProperties CategoryProperties { get; set; } 
    public virtual Group Group { get; set; } 
    public virtual Operator Operator { get; set; } 
} 

public partial class Operator 
{ 
    public Operator() 
    { 
     this.BookCategoryMapping = new HashSet<BookCategoryMapping>(); 
    } 

    public int Id { get; set; } 
    public string Name { get; set; } 

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

但每當我把這種方法,具有更新錯誤的。我得到

無效的列名稱OperatorId「

public void SaveBookCategoryMapping(BookCategoryMapping bookCategoryMapping, bool update) 
    { 
     if (update) 
      _context.Entry(bookCategoryMapping).State = EntityState.Modified; 
     else 
      _context.BookCategoryMapping.Add(bookCategoryMapping); 

     _context.SaveChanges(); 
    } 

我不知道,因爲這兩個類是從EDMX模型生成如何能夠無效。

編輯:我已經嘗試過在SSMS中插入腳本。我承認這個專欄在這裏。但插入仍然失敗。

+0

您可以驗證數據庫中是否存在「OperatorId」列。生成EDMX時,你使用了數據庫優先方法嗎?歡呼聲 –

+0

@TKelly EDMX首先生成數據庫,是的。我也檢查了數據庫。該列確實存在:-( –

+0

插入和更新路由都崩潰了?生成了什麼SQL?https://msdn.microsoft.com/en-us/data/dn469464.aspx?f=255&MSPPError=-2147217396 –

回答

0

刪除表並重新創建它可以解決問題。