2016-03-22 6 views
-1

У меня есть простая база данных. Пусть я добавлю, используя запись AddBookName в таблице NamesSet, база данных должна генерировать случайный идентификатор BookNameID. Главный вопрос заключается в том, как определить BookNameID, который был создан для установления соединения с таблицей Books?asp.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()', не является ли свойство 'BookNameID' на' name' заполнено сгенерированным значением? – David

+0

Да. Это работает. Напишите ответ, я приму это. – A191919

ответ

1

Когда вы вызываете SaveChanges(), любые объекты, добавленные в контекст, будут заполнены сгенерированными значениями из базы данных. Таким образом, сгенерированное значение должно быть доступно после этой строки:

name.BookNameID 
Смежные вопросы