将数据保存在2个表mvc中

时间:2015-05-03 20:28:09

标签: mysql asp.net-mvc

我的项目是客房预订服务。我有查看:

@model Client

@using (Html.BeginForm("SaveUserDB", "Booking", FormMethod.Post))
                {
<div class="editor-label">
     @Html.Label("Surname")
     @Html.TextBoxFor(model => model.Surname)
</div>
<div class="editor-label">
     @Html.Label("Name")
     @Html.TextBoxFor(model => model.Name)
     @Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
     @Html.Label("Patronymic")
     @Html.TextBoxFor(model => model.Patronymic)
</div>
<input type="submit" id="submit" value="Reservation" />

我有这个视图的控制器:

[HttpPost]
public ActionResult SaveUserDB(Client client)
{
    if (ModelState.IsValid)
    {
        using (db)
        {
            db.Client.Add(client);
            db.SaveChanges();
            return RedirectToAction("Thankyou");
        }
    }

    return View(client);
}

此控制器将数据客户端保存到数据库表Client。但是我还需要在第二个表中创建记录预约,其中包含参数:Datetime.NowClient.Id。数据库中的参数客户端ID是自动增量,但不会在视图中显示。

1 个答案:

答案 0 :(得分:0)

好吧,如果这是你在Client表中添加记录的方式:

db.Client.Add(client);

那为什么不使用同样精确的方法将记录添加到Reservation表中?像这样:

var reservation = new Reservation
{
    ClientID = client.ID,
    SomeOtherColumn = DateTime.Now
};
db.Reservation.Add(reservation);

(注意:这是基于根据您的描述推测您的Reservation对象/表可能的样子。但概念是相同的。创建预订实例对象并将其添加到数据上下文中。)