Model First — создание базы данных на основании объектной модели.
Создайте файл базы данных в проекте.
Создайте файл базы данных в проекте.
Кликните правой кнопкой мыши на проекте. Add. New Item. Data. ADO.NET Entity Data Model.
Выберите Empty EF Designer model.
Visual Studio сгенерировала страницу в дизайнере.
Откройте Toolbox.
Для создания сущностей используется элемент Entity.
Для создания связи ассоциации используется элемент Association.
Для создания связи наследования элемент Inheritance.
Для создания сущностей используется элемент Entity.
Для создания связи ассоциации используется элемент Association.
Для создания связи наследования элемент Inheritance.
Перетащите элемент Entity. Измените название, в нашем примере это Book.
Добавьте новые свойства. Кликните правой кнопкой мыши на свойстве IdBook. Add New. Scalar Property.
Настройте каждое свойство. Для этого выделите его и нажмите F4. В окне свойств сделайте нужные настройки.
Сделайте проверку. Кликните правой кнопкой мыши в окне. Выберите Validate.
Сгенерируйте файл со скриптом, который создаст таблицы. Кликните правой кнопкой мыши в окне. Generate Database from Model.
Выберите соединение.
Выберите версию.
Visual Studio показывает SQL код, который будет сгенерирован.
Visual Studio сгенерировала SQL код.
Нажмите на пиктограмму Connect.
Соединитесь с сервером.
Выберите файл базы данных.
Нажмите на пиктограмму Execute.
Таблица создана.
В файле, который имеет часть названия Context, (в нашем примере это zzzModel.Context.cs) находятся свойства с именами моделей, сгенерированных от таблиц.
В нашем примере сущность имеет название Book. Visual Studio сгенерировала таблицу Book Set, свойство имеет такое же название, Book Set.
В нашем примере сущность имеет название Book. Visual Studio сгенерировала таблицу Book Set, свойство имеет такое же название, Book Set.
Эту таблицу заполним программно.
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="_0002.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta charset="utf-8" /> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="Label1" runat="server" Text=""></asp:Label> <br /> <br /> <asp:Label ID="Label2" runat="server" Text=""></asp:Label> </div> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="_0002.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta charset="utf-8" /> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="Label1" runat="server" Text=""></asp:Label> <br /> <br /> <asp:Label ID="Label2" runat="server" Text=""></asp:Label> </div> </form> </body> </html>
Default.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace _0002 { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //создаем экземпляр класса, который находится в файле, //имеющий в своем названии слово Context //в нашем примере это zzzModel.Context.cs var db = new zzzModelContainer(); //ввод данных в таблицу BookSet db.BookSet.Add(new Book { Name="Мертвые души", Amount=5, Price=10.25m }); db.BookSet.Add(new Book { Name="Дубровский", Amount=10, Price=12.45m }); db.BookSet.Add(new Book { Name="Вечера на хутрое", Amount=15, Price=13.85m }); db.BookSet.Add(new Book { Name="Мцыри", Amount=20, Price=18.15m }); db.BookSet.Add(new Book { Name="Онегин", Amount=25, Price=21.70m }); //сохраняем данные db.SaveChanges(); //вывод данных foreach(var i in db.BookSet) { Label1.Text += i.Name.ToString() + " " + i.Amount.ToString() + " " + Convert.ToString(string.Format("{0:f2}", i.Price)) + "<br />"; } var query = from val in db.BookSet select val; foreach(var i in db.BookSet) { Label2.Text += i.Name.ToString() + " " + i.Amount.ToString() + " " + Convert.ToString(string.Format("{0:f2}", i.Price)) + "<br />"; } } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace _0002 { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //создаем экземпляр класса, который находится в файле, //имеющий в своем названии слово Context //в нашем примере это zzzModel.Context.cs var db = new zzzModelContainer(); //ввод данных в таблицу BookSet db.BookSet.Add(new Book { Name="Мертвые души", Amount=5, Price=10.25m }); db.BookSet.Add(new Book { Name="Дубровский", Amount=10, Price=12.45m }); db.BookSet.Add(new Book { Name="Вечера на хутрое", Amount=15, Price=13.85m }); db.BookSet.Add(new Book { Name="Мцыри", Amount=20, Price=18.15m }); db.BookSet.Add(new Book { Name="Онегин", Amount=25, Price=21.70m }); //сохраняем данные db.SaveChanges(); //вывод данных foreach(var i in db.BookSet) { Label1.Text += i.Name.ToString() + " " + i.Amount.ToString() + " " + Convert.ToString(string.Format("{0:f2}", i.Price)) + "<br />"; } var query = from val in db.BookSet select val; foreach(var i in db.BookSet) { Label2.Text += i.Name.ToString() + " " + i.Amount.ToString() + " " + Convert.ToString(string.Format("{0:f2}", i.Price)) + "<br />"; } } } }