2016-03-22 102 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