だから、この問題は、SOの多くの異なる答えを持っているようです - しかし、私の問題を解決する重複を見つけることができないか、問題が何であるかを明らかにします。この問題は、挿入/作成しようとするとdb.SaveChanges()で検証エラーが発生したときに発生します。まず第一に、デバッガの検証の下で "モデルにIDが必要です"というメッセージが表示されました。もちろん、まず第一に、私のIDは、これを読んだ後でわからない文字列でした。 How to generate and auto increment Id with Entity Framework 私はIDをintに変更し、上記のリンクソリューションに従って[Key]データアノテーションを削除しました。私もDBを更新しました。しかし、IDは0と表示され、 "NULLを値に挿入することはできません"というエラーが表示されます。ただし、IDをハードコードするとテーブルが正常に更新されます。ここではコードです..任意のヘルプが感謝します。 モデル:createメソッドのモデルのIDが常にnullで無効なのはなぜですか?
public class Model
{
//[Key]
//[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ModelId { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Description { get; set; }
[Required]
[DataType(DataType.Time)]
public DateTime OpenTime { get; set; }
[Required]
[DataType(DataType.Time)]
public DateTime CloseTime { get; set; }
//Navigation property
public virtual ICollection<OtherModel> OtherModels { get; set; }
}
コントローラ:
// GET: Model/Create
public ActionResult Create()
{
return View();
}
// POST: Model/Create
[HttpPost]
public ActionResult Create(Model model)
{
try
{
db.Models.Add(model);
db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View(model);
}
}
コメントアウトした属性が必要です。 –
SQL Serverを使用していますか? – Henrique
はい、SQL Server – Inkers