2016-03-22 99 views
-1

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

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"/> 
} 
+0

调用SaveChanges()后,是不是'name'上的'BookNameID'属性填充了生成的值? – David

+0

是的。这工作。写答案我会接受它。 – A191919

回答

1

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

name.BookNameID