Model First

Model First — создание базы данных на основании объектной модели.

Создайте файл базы данных в проекте.
Кликните правой кнопкой мыши на проекте. Add. New Item. Data. ADO.NET Entity Data Model.
Выберите Empty EF Designer model.
Visual Studio сгенерировала страницу в дизайнере.
Откройте Toolbox.
Для создания сущностей используется элемент 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.
Эту таблицу заполним программно.
Скрыть

Показать

Копировать
  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>
 
Скрыть

Показать

Копировать
  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 />";
   }
  }
 }
}