Forum

Veri tabanı güncell...
 
Bildirimler
Hepsini Temizle

[Çözüldü] Veri tabanı güncelleme.

3 Yazılar
3 Üyeler
2 Reactions
2,972 Görüntüleme
(@hiberix)
Gönderiler: 1
New Member
Konu başlatıcı
 

Herkese Merhaba;
Ben bir windows tabanlı bir proje geliştiriyorum projemin sonuna geldim fakat proje geliştirilmeye yönelik bir proje. Geliştirilmesini sağladığımda projeye bağlı veritabanınıda güncellemem gerekiyor. Ben bu projenin veritabanını güncelliyecek bir program yazmak istiyorum. Araştırmasını yaptım migration yapısı ile karşılaştım istediğim şeyi karşılıyor fakat oradada 2 adet sorun ile karşılaşıyorum.1. Migration ile oluşturduğum tablonun ismini nasıl kendim belirliyebilirim. 2. Package Manager Console database güncelleme için yazdığımız update-database komutunu nasıl bir butona entegre ettirerek çalıştırabilirim.
Şimdiden ilginiz için teşekkür eder. Bu zor günlerde hayatınızda başarılar dilerim.

 
Gönderildi : 07/12/2021 09:29

(@omercolakoglu)
Gönderiler: 69
Trusted Member
 

Merhaba,

Veritabanı güncellemeden kastın tam olarak nedir? Biraz daha açar mısın?

 
Gönderildi : 06/01/2022 15:34

(@aliuysal)
Gönderiler: 292
Üye
 
Gönderen: @hiberix

Herkese Merhaba;
Ben bir windows tabanlı bir proje geliştiriyorum projemin sonuna geldim fakat proje geliştirilmeye yönelik bir proje. Geliştirilmesini sağladığımda projeye bağlı veritabanınıda güncellemem gerekiyor. Ben bu projenin veritabanını güncelliyecek bir program yazmak istiyorum. Araştırmasını yaptım migration yapısı ile karşılaştım istediğim şeyi karşılıyor fakat oradada 2 adet sorun ile karşılaşıyorum.1. Migration ile oluşturduğum tablonun ismini nasıl kendim belirliyebilirim. 2. Package Manager Console database güncelleme için yazdığımız update-database komutunu nasıl bir butona entegre ettirerek çalıştırabilirim.
Şimdiden ilginiz için teşekkür eder. Bu zor günlerde hayatınızda başarılar dilerim.

ilk sorunuz zaten migrate dosyasında update-create edeceğiniz detayları girerek yapılıyor bir tablo ismi girmeden zaten tablo create edemezsiniz.

Örnek;

public partial class InitialCreate : DbMigration
{
    public override void Up()
    {
        CreateTable(
            "dbo.Course",
            c => new
                {
                    CourseID = c.Int(nullable: false),
                    Title = c.String(),
                    Credits = c.Int(nullable: false),
                })
            .PrimaryKey(t => t.CourseID);
        
        CreateTable(
            "dbo.Enrollment",
            c => new
                {
                    EnrollmentID = c.Int(nullable: false, identity: true),
                    CourseID = c.Int(nullable: false),
                    StudentID = c.Int(nullable: false),
                    Grade = c.Int(),
                })
            .PrimaryKey(t => t.EnrollmentID)
            .ForeignKey("dbo.Course", t => t.CourseID, cascadeDelete: true)
            .ForeignKey("dbo.Student", t => t.StudentID, cascadeDelete: true)
            .Index(t => t.CourseID)
            .Index(t => t.StudentID);
        
        CreateTable(
            "dbo.Student",
            c => new
                {
                    ID = c.Int(nullable: false, identity: true),
                    LastName = c.String(),
                    FirstMidName = c.String(),
                    EnrollmentDate = c.DateTime(nullable: false),
                })
            .PrimaryKey(t => t.ID);
        
    }
    
    public override void Down()
    {
        DropForeignKey("dbo.Enrollment", "StudentID", "dbo.Student");
        DropForeignKey("dbo.Enrollment", "CourseID", "dbo.Course");
        DropIndex("dbo.Enrollment", new[] { "StudentID" });
        DropIndex("dbo.Enrollment", new[] { "CourseID" });
        DropTable("dbo.Student");
        DropTable("dbo.Enrollment");
        DropTable("dbo.Course");
    }
}

 

2. Sorunuza gelirsek; 
MigrateDatabaseToLatestVersion kullanmanız gerekmektedir.

Örnek uygulama başlangıcında migrate için;

using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.Entity;
    using MigrationsDemo.Migrations;

    namespace MigrationsDemo
    {
        class Program
        {
            static void Main(string[] args)
            {
                Database.SetInitializer(new MigrateDatabaseToLatestVersion<BlogContext, Configuration>());

                using (var db = new BlogContext())
                {
                    db.Blogs.Add(new Blog { Name = "Another Blog " });
                    db.SaveChanges();

                    foreach (var blog in db.Blogs)
                    {
                        Console.WriteLine(blog.Name);
                    }
                }

                Console.WriteLine("Press any key to exit...");
                Console.ReadKey();
            }
        }
    }

Detaylı bilgileri bu linkte bulabilirsin;

https://docs.microsoft.com/tr-tr/ef/ef6/modeling/code-first/migrations/

 

Dijital dönüşüm başlıyor...
RFID Sayım
WinFlow e-Fatura Onay Akış Süreç Yazılımı
Android El Terminali
Elektrikli Araç Şarj Yazılım Platformu
RFID Demirbaş
QrCode Api

 
Gönderildi : 03/02/2022 16:23

Paylaş: