我正在尝试在 ASP.NET MVC 中使用 Entity 开发牛授精控制系统(这是一种节育措施,其中有小牛的出生、母亲、父亲的姓名等数据)框架(问题末尾有它生成的关系模型)。
问题是我无法将创建的数据保存到数据库中,出现以下错误:
SqlException:INSERT 语句与 FOREIGN KEY 约束“FK_Vaca_IDRaca”冲突。冲突发生在数据库“ControleInseminacao”、表“dbo.IDRaca”、列“IDRaca”中。
在我做的表格测试中,我注意到我没有收到下拉列表中选择的数据,我的错误在哪里?
Vaca
表链接到另外两个表,我的视图甚至在下拉列表中显示这两个表的数据,但我无法将此信息保存在我的数据库中。
我的控制器:
[HttpGet]
public ActionResult Create()
{
ControleInseminacaoEntities1 db_context = new ControleInseminacaoEntities1();
ViewBag.ListaFazendas = new SelectList(db_context.Fazenda.ToList(), "IDFazenda", "Name");
ViewBag.ListaRacas = new SelectList(db_context.IDRaca.ToList(), "IDRaca1", "Name");
return View();
}
[HttpPost]
Public ActionResult Create(Cow cow)
{
ControleInseminacaoEntities1 db_context = new ControleInseminacaoEntities1();
db_context.Cow.Add(cow);
db_context.SaveChanges();
return RedirectToAction("Index");
}
我的观点:
<div class="form-horizontal">
<h4>Vacation</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
Farm
<div class="col-md-10">
@Html.DropDownList("Fazenda", ViewBag.ListaFazendas as SelectList, "Select a Farm", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.FK_Vaca_IDFazenda, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
race
<div class="col-md-10">
@Html.DropDownList("Race", ViewBag.RaceList as SelectList, "Select a breed", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.FK_Vaca_IDRaca, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
</div>
</div>
对于任何拼写错误,我深表歉意,我是巴西人,会说葡萄牙语,但是,巴西论坛上没有人回答我的问题...
我的数据库:
我创建了另一个模型,还有新的列和关系,我还多次更改了控制器,但没有任何效果,在逐行测试中我发现我无法将其添加到数据库中,因为我不从我的角度看不到数据。我想知道我哪里出错了。