Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР_ ТКП.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
709 Кб
Скачать
☆

Код програми

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'))

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]