挿入を実行しようとすると、次のエラーが表示されます。
値 NULL を列 'Request_Cat_ID'、テーブル 'dbo.Request_Categories' に挿入できません。列はヌルを許可しません。INSERT は失敗します。
このエラーが私を困惑させる理由は、キー列が int ではなく文字列であるテーブル設定が非常に似ているためです。そのテーブルに問題なく挿入できます。インサートは小さくてシンプルなので、内訳は次のとおりです。
モデル:
[Table("Request_Categories")]
public class RequestCategory
{
[Key]
[Column("Request_Cat_ID")]
public int RequestCategoryID { get; set; }
[Column("Request_Category")]
public string RequestCategoryName { get; set; }
}
ビューモデル:
public class RequestCategoryViewModel
{
public IEnumerable<RequestCategory> RequestCategories { get; set; }
}
コントローラーの方法:
[HttpPost]
public JsonResult AddRequestCategory(RequestCategory model)
{
var foo = model.RequestCategoryID; //There is a value that appears here. It does have an int type.
db.RequestCategories.Add(model);
db.SaveChanges();
return Json("");
}
ビューから渡される場所:
$.post('@Url.Action("AddRequestCategory", "Services", new { area = "services" })',
{
RequestCategoryID: form.currentTarget.RequestCategoryID.value,
RequestCategoryName: form.currentTarget.RequestCategoryName.value,
}, AddRow, "json");
アドバイスやヒントは大歓迎です!