{ // Демонстрация Code First // Дополнительный пример см. // в статье http://go.microsoft.com/fwlink/?LinkId=390109. static void Main(string[] args) { // Создание базы данных GameContext db = new GameContext(); ShowInfoConnection(db); // Добавление данных в таблицу Players Player pl1 = new Player() { Age = 33, Name = "Ivan", Position = "Forvard" }; Player pl2 = new Player() { Age = 33, Name = "Alex", Position = "GoalKeeper" }; // Добавление данных в таблицу Teams Team team = new Team(); team.Name = "Inter"; team.Players = new List<Player>(); team.Players.Add(pl1); team.Players.Add(pl2); db.Teams.Add(team); // Сохранение результатов db.SaveChanges(); // Вывод foreach (var item in db.Players) { string info = String.Format("{0} {1} {2}",item.Name, item.Age, item.Team.Name); Console.WriteLine(info); } Console.ReadKey(); }
{ // Демонстрация Code First с миграцией данных // Суть миграции данных: при изменении структуры данных (добавлении нового поля, связанной таблицы т.д.) // необходимо создать новую базу данных, однако при этом необходимо сохранить имеющиеся данные в БД //Команды для миграции // Вводим команды в окне: "Консоль деспетчера пакетов" // Автоатичекие миграции //Enable-Migrations // Ручные миграции //Add-Migration SampleMigrations //Update-Database - внесение информации //Update-Database –Verbose - внесение информации (с отображение изменений) static void Main(string[] args) { try { // Создание базы данных GameContext db = new GameContext(); //// Добавление данных в таблицу Players //Player pl1 = new Player() { Age = 33, Name = "Inna", Position = "Forvard", BirthDay=DateTime.Now }; Player pl1 = new Player() { Age = 33, Name = "Inna", Position = "Forvard"}; db.Players.Add(pl1); // Сохранение результатов db.SaveChanges(); foreach (var pl in db.Players) { //Console.WriteLine(pl.Name + " " + pl.Position + " " + pl.BirthDay); Console.WriteLine(pl.Name + " " + pl.Position); } } catch(Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); }
static void ShowInfoConnection(GameContext db) { Console.WriteLine("Вывод строки подключения"); Console.WriteLine(db.Database.Connection.ConnectionString); Console.WriteLine("Имя сервера: " + db.Database.Connection.DataSource); Console.WriteLine("Имя БД: " + db.Database.Connection.Database); }
{ // Демонстрация Code First с настройкой поведения базы данных // изменения в классе GameContext // Также заполнение базы данными по умолчанию (класс GameContextInitialazer). static void Main(string[] args) { // Создание базы данных GameContext db = new GameContext(); // Вывод foreach (var item in db.Players) { string info = String.Format("{0} {1} {2}", item.Name, item.Age, item.Team.Name); Console.WriteLine(info); } Console.ReadKey(); }
{ // Демонстрация Code First // DataAnnotations static void Main(string[] args) { // Создание базы данных GameContext db = new GameContext(); // Вывод значений, содержащихся в базе данных! foreach (var item in db.Teams) { Console.WriteLine(item.Name); foreach (var pl in item.Players) { Console.WriteLine(pl.Name + " " + pl.Position); } } Console.ReadKey(); }