asp.net mvc数据库关系

时间:2016-03-22 18:33:07

标签: c# asp.net asp.net-mvc

我有简单的数据库。让我在表AddBookName数据库中使用NamesSet记录添加应生成随机BookNameID。主要问题是如何找出为建立与表BookNameID的连接而生成的Books

enter image description here

书籍:

CREATE TABLE [dbo].[BooksSet] (
[Id]         INT            IDENTITY (1, 1) NOT NULL,
[BookNameID] NVARCHAR (MAX) NOT NULL,
[PlaceID]    NVARCHAR (MAX) NOT NULL,
CONSTRAINT [PK_BooksSet] PRIMARY KEY CLUSTERED ([Id] ASC)
);

姓名

CREATE TABLE [dbo].[NamesSet] (
[BookNameID] INT            IDENTITY (1, 1) NOT NULL,
[BookName]   NVARCHAR (MAX) NOT NULL,
[Language]   NVARCHAR (MAX) NOT NULL,
CONSTRAINT [PK_NamesSet] PRIMARY KEY CLUSTERED ([BookNameID] ASC)
);

HomeController中:

public class HomeController : Controller
{
    //
    // GET: /Home/
    TestEntities TE = new TestEntities();
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult AddBookName(Names name)
    {
        TE.NamesSet.Add(name);
        TE.SaveChanges();
        return View();
    }

}

查看:

@model TestDataBase.Models.Names
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

@using(@Html.BeginForm("AddBookName","Home"))
{
    @Html.EditorFor(x=>x.BookName)
    @Html.EditorFor(x => x.Language)
    <input type="submit" value="Add name"/>
}

1 个答案:

答案 0 :(得分:1)

当您调用SaveChanges()时,添加到上下文中的所有对象都将使用数据库中生成的值进行填充。因此,生成的值应该在该行之后可用:

name.BookNameID