2009-05-28 81 views
3

我目前正在設法獲得一些時間來處理ASP.NET MVC。我在做 教程Create a Movie Database in ASP.NET MVC,它仍然使用ADO.NET Enity模型。我設法從LINQ實體模型創建了一個列表視圖。所以這是我的問題。 綁定屬性在我的SQL實體上不起作用。綁定排除Asp.net MVC在LINQ實體上不起作用

與Ado.NET

 public ActionResult Create([Bind(Exclude="Id")] Movie movieToCreate) 

     { 
      if (!ModelState.IsValid) 
       return View(); 

      _db.AddToMovieSet(movieToCreate); 
      _db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 

我的LINQ代碼

public ActionResult Create([Bind(Exclude = "Id")] Movies movieToCreate) 
    { 
     if (!ModelState.IsValid) 
     { 
      return View(); 
     } 
     _db_linq.Movies.InsertOnSubmit(movieToCreate); 
     _db_linq.SubmitChanges(); 

     return RedirectToAction("Index"); 
    } 

但ID字段原始代碼不排除。有任何想法嗎?謝謝!

+0

你爲什麼認爲它不被排除? – 2009-05-28 09:35:01

+1

因爲movieToCreate仍然包含id字段設置爲0.但我解決了這個問題,通過在數據庫中聲明id字段作爲標識和主鍵,並在shema中聲明瞭autocreated = true。 – 2009-05-28 10:00:16

回答

7

您的ID屬性可能是一個整數,它不是一個可爲空的類型。因此,即使綁定時排除它,它也必須具有價值。在這種情況下,它具有其類型的默認值,該值爲零。

確保您正確設置數據庫,並將ID字段的IsIdentity屬性設置爲true並重新創建LINQ類。