![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Анотація даних і гнучкий АРІ CodFirst.Содержание книги Поиск на нашем сайте
Останні версії Entity Framework підтримують використання так званих анотацій даних, що використовуються для задання правил валідації, а також для визначення зв’язків між класами та таблицями в БД. Всі анотації реалізовані у вигляді атрибутів, які можна присвоювати відповідним властивостям класів чи самим класам. Перелік атрибутів, які найчастіше використовуються: · [Key] – визначення первинного ключа в БД · [StringLength] – мінімальна і максимальна довжина стрічки (використовується тільки для валідації) · [MaxLength] – можна використовувати замість атрибуту StringLength для задання максимальної довжини стрічки · [ConcurrencyCheck] – активує перевірку конкурентного доступу · [Required] – встановлює прапорець обов’язкового значення (в БД колонка позначається як not null) · [Timestamp] – прапорець для колонок, які використовуються в якості часового маркера при перевірках конкурентного доступу · [Column] – використовується для задання імені колонки (за замовчуванням використовується ім’я властивості), також можна використовувати для встановлення позиції колонки · [Table] – використовується для задання імені таблиці (за замовчування таблиця називається згідно з іменем класу) · [DatabaseGenerated] – властивості з даним атрибутом будуть генеруватись БД (допустимі значення: Computed, Identity, None) · [NotMapped] – використовується у випадках, коли певну властивість класу необхідно виключити з проекції на таблицю БД. · [ForeignKey] і [InverseProperty] – колонки, що визначають зовнішні ключі Анотації даних – зручний і швидкий спосіб задання правил валідації і структур зв’язків, однак він не забезпечує можливості використання повної потужності Code First. Існує більш гнучкий програмний спосіб опису структур і залежностей між ними – це АРІ Code First. Для його використання необхідно в класі контексту реалізувати метод OnModelCreating. Валідація даних. Валідація даних – надзвичайно важлива частина процесу розробки ПЗ. Необхідно забезпечити високу якість і цілісність даних. Необхідно уникати збереження пошкоджених чи неправильних даних, які можуть привести до хибної поведінки системи. Аудит даних. Entity Framework забезпечує потужний механізм аудиту всіх даних, які використовуються в моделі. Це дає можливість бачити і працювати з історією змін, відміняти зміни повертаючись до попереднього значення, чи вирішувати проблеми конкурентного доступу.
Entity Framework забезпечує доступ до наступних властивостей кожної з сутностей: · Значення в БД (Database value) · Початкове значення (Original value) · Поточне значення (Current value) Індивідуальне завдання № Пункт 6 Пункт 9 А) Додати папку ..//trunk/_GN_/_TN_/_SLN_/_LNUM_/FolderB/ Б) Видалити файл ..//trunk/_GN_/_TN_/_SLN_/_LNUM_/FolderA/FileB.txt В) Видалити файл ..//trunk/_GN_/_TN_/_SLN_/_LNUM_/DiretoryA/FileB.txt Г) В файли ..//trunk/_GN_/_TN_/_SLN_/_LNUM_/FolderA/FileA.txt i ..//trunk/_GN_/_TN_/_SLN_/_LNUM_/FolderA/FileC.txt внести довільний текст. А) Редагувати текст у файлі ..//trunk/_GN_/_TN_/_SLN_/_LNUM_/FolderA/FileA.txt Б) Видалити файл ..//trunk/_GN_/_TN_/_SLN_/_LNUM_/FolderA/FileC.txt В) Додати файл ..//trunk/_GN_/_TN_/_SLN_/_LNUM_/DiretoryA/temp.txt Результати виконання Revision: 12 Author: N_Olya Date: Monday, October 01, 2012 8:14:48 PM Message:
---- Added : /Tags/T2 (Copy from path: /trunk, Revision, 11)
Revision: 11 Author: N_Olya Date: Monday, October 01, 2012 8:13:26 PM Message:
---- Modified : /trunk Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Directory A/temp.txt (Copy from path: /Branches/b1/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Directory A/temp.txt, Revision, 10) Modified : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Folder A/File A.txt Deleted : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Folder A/File C.txt
Revision: 10 Author: N_Olya Date: Monday, October 01, 2012 8:07:16 PM Message:
---- Added : /Branches/b1/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Directory A/temp.txt Modified : /Branches/b1/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Folder A/File A.txt Deleted : /Branches/b1/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Folder A/File C.txt
Revision: 9 Author: N_Olya Date: Monday, October 01, 2012 8:01:16 PM Message:
---- Added : /Branches/b1 (Copy from path: /trunk, Revision, 8)
Revision: 8 Author: N_Olya Date: Monday, October 01, 2012 7:59:31 PM Message:
---- Added : /Tags/t1 (Copy from path: /trunk, Revision, 7)
Revision: 7 Author: N_Olya Date: Monday, October 01, 2012 7:57:14 PM Message:
---- Deleted : /Tags/t1
Revision: 6 Author: N_Olya Date: Monday, October 01, 2012 7:55:33 PM Message:
---- Deleted : /Branches/b1 Deleted : /trunk/KН-33/Варіант 1/Нарушинська/1.10.2012 Deleted : /trunk/KН-33/Варіант 1/Нарушинська/Directory A Deleted : /trunk/KН-33/Варіант 1/Нарушинська/Folder A Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/1.10.2012 Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/1.10.2012/1.txt Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Directory A Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Directory A/File A.txt Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Directory A/File C.txt
Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Folder A Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Folder A/File A.txt Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Folder A/File C.txt
Revision: 5 Author: N_Olya Date: Monday, October 01, 2012 7:44:51 PM Message: перше розгалуження ---- Added : /Branches/b1 (Copy from path: /trunk, Revision, 4)
Revision: 4 Author: N_Olya Date: Monday, October 01, 2012 7:41:27 PM Message: перший таг ---- Added : /Tags/t1 (Copy from path: /trunk, Revision, 3)
Revision: 3 Author: N_Olya Date: Monday, October 01, 2012 7:37:55 PM Message:
---- Deleted : /trunk/KН-33/Варіант 1/Нарушинська/Directory A/File B.txt Modified : /trunk/KН-33/Варіант 1/Нарушинська/Folder A/File A.txt Deleted : /trunk/KН-33/Варіант 1/Нарушинська/Folder A/File B.txt Modified : /trunk/KН-33/Варіант 1/Нарушинська/Folder A/File C.txt Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Folder B
Revision: 2 Author: N_Olya Date: Monday, October 01, 2012 7:31:39 PM Message:
---- Added : /Branches Added : /Tags Added : /trunk/KН-33 Added : /trunk/KН-33/Варіант 1 Added : /trunk/KН-33/Варіант 1/Shared.txt Added : /trunk/KН-33/Варіант 1/Нарушинська Added : /trunk/KН-33/Варіант 1/Нарушинська/1.10.2012 Added : /trunk/KН-33/Варіант 1/Нарушинська/1.10.2012/1.txt Added : /trunk/KН-33/Варіант 1/Нарушинська/Directory A Added : /trunk/KН-33/Варіант 1/Нарушинська/Directory A/File A.txt Added : /trunk/KН-33/Варіант 1/Нарушинська/Directory A/File B.txt Added : /trunk/KН-33/Варіант 1/Нарушинська/Directory A/File C.txt Added : /trunk/KН-33/Варіант 1/Нарушинська/Folder A Added : /trunk/KН-33/Варіант 1/Нарушинська/Folder A/File A.txt Added : /trunk/KН-33/Варіант 1/Нарушинська/Folder A/File B.txt Added : /trunk/KН-33/Варіант 1/Нарушинська/Folder A/File C.txt Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1 Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Ольга Added : /trunk/KН-33/Варіант 1/Нарушинська/Лабораторна 1/Ольга/01.10.2012.txt
Revision: 1 Author: www-data Date: Sunday, September 18, 2011 4:27:08 PM Message: Automatically created readme.textile and /trunk directory. We recommend you to put all your code there. ---- Added : /readme.textile Added : /trunk
Варіант Завдання для 1го студента Таблиці: · Інститути, · Кафедри, · Викладачі Зв'язки: · Інстититут – кафедра = 1-N · кафедра – Викладачі = 1-N
1. Згенерований скрипт створення БД. USE [lab2] GO /****** Object: Table [dbo].[Institutes] Script Date: 10/23/2012 20:07:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Institutes]( [Insitute_Id] [int] IDENTITY(1,1) NOT NULL, [Insitute_Name] [nchar](50) NOT NULL, CONSTRAINT [PK_Institutes] PRIMARY KEY CLUSTERED ( [Insitute_Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[Kafedras] Script Date: 10/23/2012 20:07:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Kafedras]( [Kafedra_Id] [int] IDENTITY(1,1) NOT NULL, [Kafedra_Name] [nchar](50) NOT NULL, [Institutes_ID] [int] NOT NULL, CONSTRAINT [PK_Kafedras] PRIMARY KEY CLUSTERED ( [Kafedra_Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[Teachers] Script Date: 10/23/2012 20:07:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Teachers]( [Teacher_Id] [int] IDENTITY(1,1) NOT NULL, [First_Name] [nchar](25) NOT NULL, [Last_Name] [nchar](25) NOT NULL, [Staj] [int] NULL, [Stupin] [nchar](25) NOT NULL, [Kaferdras] [int] NOT NULL, CONSTRAINT [PK_Teachers] PRIMARY KEY CLUSTERED ( [Teacher_Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: ForeignKey [FK_Kafedras_Institutes] Script Date: 10/23/2012 20:07:31 ******/ ALTER TABLE [dbo].[Kafedras] WITH CHECK ADD CONSTRAINT [FK_Kafedras_Institutes] FOREIGN KEY([Institutes_ID]) REFERENCES [dbo].[Institutes] ([Insitute_Id]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[Kafedras] CHECK CONSTRAINT [FK_Kafedras_Institutes] GO /****** Object: ForeignKey [FK_Teachers_Kafedras] Script Date: 10/23/2012 20:07:31 ******/ ALTER TABLE [dbo].[Teachers] WITH CHECK ADD CONSTRAINT [FK_Teachers_Kafedras] FOREIGN KEY([Kaferdras])
REFERENCES [dbo].[Kafedras] ([Kafedra_Id]) ON UPDATE CASCADE ON DELETE CASCADE GO ALTER TABLE [dbo].[Teachers] CHECK CONSTRAINT [FK_Teachers_Kafedras] GO
2)Скрипти для заповнення БД тестовою інформацією USE [lab2] GO /****** Object: Table [dbo].[Institutes] Script Date: 10/23/2012 19:53:50 ******/ insert into [dbo].Institutes ([Insitute_Name]) values ('Example1') insert into [dbo].Kafedras ([Kafedra_Name],[Institutes_ID]) values ('Kafedra1',@@IDENTITY) insert into [dbo].Teachers ([First_Name],[Last_Name],[Staj],[Stupin],[Kaferdras]) values ('Valera','OLOLO',10,'Docent',@@IDENTITY)
insert into [dbo].Institutes ([Insitute_Name]) values ('Example2') insert into [dbo].Kafedras ([Kafedra_Name],[Institutes_ID]) values ('Kafedra2',@@IDENTITY) insert into [dbo].Teachers ([First_Name],[Last_Name],[Staj],[Stupin],[Kaferdras]) values ('Valera1','OLOLO1',20,'Docent1',@@IDENTITY)
insert into [dbo].Institutes ([Insitute_Name]) values ('Example3') insert into [dbo].Kafedras ([Kafedra_Name],[Institutes_ID]) values ('Kafedra3',@@IDENTITY) insert into [dbo].Teachers ([First_Name],[Last_Name],[Staj],[Stupin],[Kaferdras]) values ('Valera3','OLOLO',1,'Docent3',@@IDENTITY)
insert into [dbo].Kafedras ([Kafedra_Name],[Institutes_ID]) values ('Kafedra4',2) insert into [dbo].Teachers ([First_Name],[Last_Name],[Staj],[Stupin],[Kaferdras]) values ('Vasya','Blablabla',1,'Aspirant',@@IDENTITY)
insert into [dbo].Teachers ([First_Name],[Last_Name],[Staj],[Stupin],[Kaferdras]) values ('Vova','Bebebe',1,'Aspirant2',4) 3) Код програми для роботи з ORM using System; using InsituteORM;
namespace DataOutput { class Program { static void Main(string[] args) { using (InsituteORM.blablablaEntities ins = new blablablaEntities()) { foreach (Institute instit in ins.Institutes) { Console.WriteLine("Intitute :{0}", instit.Insitute_Name); foreach (Kafedra kfdr in instit.Kafedras) { Console.WriteLine("\t Kafedra :{0}", kfdr.Kafedra_Name); foreach (Teacher tch in kfdr.Teachers) { Console.WriteLine("\t\t Teacher: \n\t\t Name - {0}, \n\t\t Surname - {1}, \n\t\t Staj - {2}, \n\t\t Stupin - {3}", tch.First_Name, tch.Last_Name, tch.Staj, tch.Stupin); } } Console.WriteLine("-------------------------"); } } Console.ReadKey(); }
} }
Код програми
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.Entity; using System.Data.EntityModel; using System.ComponentModel.DataAnnotations;
namespace Institutes { class DataContext :DbContext { public DataContext() : base("Olichka") { } public DbSet<Institute> Institute { get; set; } public DbSet<Kafedra> Kafedra { get; set; } public DbSet<Teacher> Teacher { get; set; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel.DataAnnotations; using System.Data.Entity;
namespace Institutes { public class Institute { [Key] public int instituteID { get; set; } [MaxLength(50, ErrorMessage = "Невірна назва інституту (не більше 50)")] [MinLength(2, ErrorMessage = "Невірна назва інституту (не менше 2)")] public string InstituteName { get; set; } public virtual ICollection<Kafedra> Kafedras { get; set; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel.DataAnnotations; using System.Data.Entity;
namespace Institutes { public class Kafedra { [Key] public int kafedraID { get; set; } [MaxLength(50, ErrorMessage = "Невірна назва кафедри (не більше 50)")] [MinLength(2, ErrorMessage = "Невірна назва кафедри (не менше 2)")] public string KafedraName { get; set; } public virtual ICollection<Teacher> Teachers { get; set; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace Institutes { public class OperationsDB { public byte Menu() { Console.WriteLine("1. Insert"); Console.WriteLine("2. Delete"); Console.WriteLine("3. Update"); Console.WriteLine("4. Search"); byte menuItem=Convert.ToByte(Console.ReadLine()); switch (menuItem){ case 0: Menu(); break; case 1: InsertInstitutes(); Console.ReadKey(); Menu(); break; case 2://Delete SwitchDelete(); Console.ReadKey(); Menu(); break; case 3://Update UpdateInstitutes(); Console.ReadKey(); Menu(); break; case 4://Search SwitchSearch(); Console.ReadKey(); Menu(); break; default: menuItem=0;break; } return (menuItem); } void InsertInstitutes() { using (var dc = new DataContext()) { Console.WriteLine("Input name of Insitute"); var institutes = new Institute() { InstituteName = Console.ReadLine()}; dc.Institute.Add(institutes); try { dc.SaveChanges(); Console.WriteLine("All right, your data was inserted"); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } void DeleteInstitutes() { using (var dc = new DataContext()) { Console.WriteLine("Input name of Insitute"); string nameInst = Console.ReadLine(); var inst= dc.Institute.First(i=>i.InstituteName==nameInst); dc.Institute.Remove(inst); try { dc.SaveChanges(); Console.WriteLine("All right, your data was deleted"); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } void UpdateInstitutes() { using (var dc = new DataContext()) { Console.WriteLine("Input name of Insitute"); string nameInst = Console.ReadLine(); var inst = dc.Institute.First(i => i.InstituteName == nameInst); Console.WriteLine("Input new name of Insitute"); string newNameInst = Console.ReadLine(); inst.InstituteName = newNameInst; try { dc.SaveChanges(); Console.WriteLine("All right, your data was update"); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } void SearchInstitutes() { using (var dc = new DataContext()) { Console.WriteLine("Input name of Insitute"); string nameInst = Console.ReadLine(); var inst = dc.Institute.First(i => i.InstituteName == nameInst); try { Console.WriteLine("ID : {0}, Name: {1}",inst.instituteID.ToString(),inst.InstituteName.ToString()); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } void DeleteTeachers() {
using (var dc = new DataContext()) { Console.WriteLine("Input Teacher Last Name"); string nameTeacher = Console.ReadLine(); var inst = dc.Teacher.First(i => i.LastName == nameTeacher); dc.Teacher.Remove(inst); try { dc.SaveChanges(); Console.WriteLine("All right, your data was deleted"); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } void SwitchDelete() { Console.WriteLine("1. Delete institute"); Console.WriteLine("2. Delete teacher"); byte switchCase = Convert.ToByte(Console.ReadLine()); switch (switchCase) { case 1: DeleteInstitutes(); break; case 2: DeleteTeachers(); break; default: SwitchDelete(); break; } } void SwitchSearch() { Console.WriteLine("1. Search institute"); Console.WriteLine("2. Search kafedra"); byte switchCase = Convert.ToByte(Console.ReadLine()); switch (switchCase) { case 1: SearchInstitutes(); break; case 2: SearchKafedra(); break; default: SwitchSearch(); break; } } void SearchKafedra() { using (var dc = new DataContext()) { Console.WriteLine("Input name of Kafedra"); string nameInst = Console.ReadLine(); var inst = dc.Kafedra.Where(b => b.KafedraName == nameInst); try { foreach (var ss in inst) { Console.WriteLine("ID : {0}, Name: {1}", ss.kafedraID.ToString(), ss.KafedraName.ToString()); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel.DataAnnotations; using System.Data.Entity;
namespace Institutes { public class Teacher { [Key] public int teacherID { get; set; } [MaxLength(50, ErrorMessage = "Невірне ім'я (не більше 50)")] [MinLength(3, ErrorMessage = "Невірне ім'я (не менше 3)")] public string FirstName { get; set; } [MaxLength(50, ErrorMessage = "Невірне прізвище (не більше 50)")] [MinLength(3, ErrorMessage = "Невірне прізвище (не менше 3)")] public string LastName { get; set; } public int Staj { get; set; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace Institutes { public class Operations { public string Validation(string strText) { string result = "Дані було додано!"; using (var data_context = new DataContext()) { var inst = new Institute() { InstituteName = strText }; data_context.Institute.Add(inst); try { data_context.SaveChanges(); } catch { var validerr = data_context.GetValidationErrors() .Where(ve => !ve.IsValid) .SelectMany(ve => ve.ValidationErrors); foreach (var error in validerr) { result = error.ErrorMessage; } } } return (result); }
public void AuditR_Net() { using (var data_context = new DataContext()) { Console.WriteLine("AUDIT----------------"); Console.WriteLine("Институты:"); var inst_A = data_context.Institute.Find(1); using (var data_contextDb = new DataContext()) { data_contextDb.Database.ExecuteSqlCommand("Update Institutes Set InstituteName = InstituteName + '_DB' Where instituteID=1"); } inst_A.InstituteName = inst_A.InstituteName + "_Memory"; string value = data_context.Entry(inst_A).Property(m => m.InstituteName).OriginalValue; Console.WriteLine(string.Format("Original Value : {0}", value));
value = data_context.Entry(inst_A).Property(m => m.InstituteName).CurrentValue; Console.WriteLine(string.Format("Current Value : {0}", value)); value = data_context.Entry(inst_A).GetDatabaseValues().GetValue<string>("InstituteName"); Console.WriteLine(string.Format("DB Value : {0}", value));
Console.WriteLine("Кафедры:"); var inst_B = data_context.Kafedra.Find(1); using (var data_contextDb = new DataContext()) { data_contextDb.Database.ExecuteSqlCommand("Update Kafedras Set KafedraName = KafedraName + '_DB' Where kafedraID=1"); } inst_B.KafedraName = inst_B.KafedraName + "_Memory"; value = data_context.Entry(inst_B).Property(m => m.KafedraName).OriginalValue; Console.WriteLine(string.Format("Original Value : {0}", value));
value = data_context.Entry(inst_B).Property(m => m.KafedraName).CurrentValue; Console.WriteLine(string.Format("Current Value : {0}", value)); value = data_context.Entry(inst_B).GetDatabaseValues().GetValue<string>("KafedraName"); Console.WriteLine(string.Format("DB Value : {0}", value)); } }
} }
Код міграції namespace Institutes.Migrations { using System; using System.Data.Entity.Migrations;
public partial class initialss : DbMigration { public override void Up() { AddColumn("dbo.Teachers", "Type", c => c.String()); }
public override void Down() { DropColumn("dbo.Teachers", "Type"); } } }
namespace Institutes.Migrations { using System; using System.Data.Entity.Migrations;
public partial class initial : DbMigration { public override void Up() { AlterColumn("dbo.Institutes", "InstituteName", c => c.String(maxLength: 40)); }
public override void Down() { AlterColumn("dbo.Institutes", "InstituteName", c => c.String(maxLength: 50)); } } }
Рис.1.Робота з міграціями Код скриптаINITIAL
DECLARE @var0 nvarchar(128) SELECT @var0 = name FROM sys.default_constraints WHERE parent_object_id = object_id(N'dbo.Teachers') AND col_name(parent_object_id, parent_column_id) = 'Type'; IF @var0 IS NOT NULL EXECUTE('ALTER TABLE [dbo].[Teachers] DROP CONSTRAINT ' + @var0) ALTER TABLE [dbo].[Teachers] DROP COLUMN [Type] DELETE [dbo].[__MigrationHistory] WHERE (([MigrationId] = '201212181851057_initialss') and ([ContextKey] = 'Institutes.Migrations.Configuration'))
Результати : Рис.2.Результати виконання програми. Рис.3. Створена БД. Рис.4.Меню Рис.5.Додавання даних Рис.6.пошук даних Рис.6.Видалення даних Рис.7.Модифікація даних Рис.8.Пошук даних по кафедрах
Висновок: Виконуючи дану РГР я ознайомилася : - з системами контролю версій та централізованим репозиторієм на прикладі клієнтської частини системи контролю версій Turtoise SVN; - з структурованою мовою запитів SQL та з середовищем розробки баз даних Microsoft SQL Server 2008, здобула навики роботи в IDE Visual Studio 2010 з використанням об’єктно-реляційної проекції Entity Framework; - з структурованою мовою запитів SQL та з середовищем розробки баз даних Microsoft SQL Server 2008, здобула навики роботи в IDE Visual Studio 2010 з використанням об’єктно-реляційної проекції Entity Framework.
|
|||||||||
Последнее изменение этой страницы: 2024-06-27; просмотров: 9; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.99.206 (0.011 с.) |