• 21-04-2020, 12:45:00
    #1
    Merhabalar
    EF Code first yaklaşımında update-database işlemini code tarafında yapmaya çalışıyorum.
    mevcut tabloları olan bir db üzerine 3-4 tablo eklemem gerekiyor lakin MigrateDatabaseToLatestVersion yaptığımda tablo isimleri ve entity class isimleri aynı olduğu için hata veriyor.
    modelBuilder.Conventions.Remove<PluralizingTableNa meConvention>(); kullanıyorum genede hata almaya devam ediyorum
    çözümü bulamadım

    Amaç : Mevcut bir veritabanı içerisine program kuruldukdan sonra 3-4 tablo daha eklemek ve ef ile bu database içerisinde işlem yaptırmak.
    Örnek mevcut olan Tablo adı : Deneme benim classımın adı Deneme dataset in adı Denemes
    class adını değiştirince örnek DenemeTbl gidiyor yeni tablo acıyor DenemeTbl diye

    ücretli ücretsiz yardım talep ediyorum



    konu UP
  • 21-04-2020, 18:05:44
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    DBContext ile bağlantı sağlandıktan sonra program içerisinden update-database çalıştırıp modellerinizin db üzerinde oluşturulmasını mı istiyorsunuz?
    İlk esnada data var mı database içerisindeki mevcut tablolarda ?
    PluralizingTableNameConvention disable ettiğinizde manuel isimlendirme yapıyor musunuz? Bu yöntemi kullansanız bile ben connection esnasında o tabloların olmamasından ötürü exception alacağınızı tahmin ediyorum.
    Yapmak istediğiniz şey biraz daha bash script işi gibi duruyor.
  • 21-04-2020, 21:40:39
    #3
    ByNF adlı üyeden alıntı: mesajı görüntüle
    DBContext ile bağlantı sağlandıktan sonra program içerisinden update-database çalıştırıp modellerinizin db üzerinde oluşturulmasını mı istiyorsunuz?
    İlk esnada data var mı database içerisindeki mevcut tablolarda ?
    PluralizingTableNameConvention disable ettiğinizde manuel isimlendirme yapıyor musunuz? Bu yöntemi kullansanız bile ben connection esnasında o tabloların olmamasından ötürü exception alacağınızı tahmin ediyorum.
    Yapmak istediğiniz şey biraz daha bash script işi gibi duruyor.
    update-database işlemini code tarafında yapmaya çalışıyorum.
    data mevcut tablolarda
    manuel isimlendirme yapmıyorum.
  • 21-04-2020, 22:38:19
    #4
    Hocam burada ilk yaşayacağınız sorun model olarak contexte verilmiş bir tablonun bulunmamasından dolayı context ayağa kalkmaz ve hata verir.
    Context öncesinde bu işlemi yapabilirsiniz ama bu sefer de tabloyu migration ile oluşturmak için deploy edilen yerde de aynı şekilde dotnet sdk sına ihtiyacınız olacak. Hatta bu da yetmeyecek projenin de karşı tarafa gitmesi gerekecek, çünkü ef core designer tool migration historye bakarak update-database yapması gerekecek.

    Bunu bu kadar kompleksleştirmek yerine, ado.net ile entity framework contexti ayağa kalkmadan database bağlanıp pure SQL querysi ile tabloyu oluşturmanız daha mantıklı ki bu olayınızı çözer.
  • 21-04-2020, 23:44:04
    #5
    hiç yapmadığım bir işlem olduğundan bu aklıma geldi lakin nasıl yapacağımı bilemedim
  • 22-04-2020, 00:37:27
    #6
    Yanlış anlamadıysam sorununuzu eskiden yazmış olduğum bu makale ile çözebilirsiniz.

    https://www.aeguven.com/c-entity-fra...tabase-update/
  • 22-04-2020, 13:09:32
    #7
    Otomatik migrasyon işlemini ef core ile aşağıdaki şekilde sağlayabilirsiniz. Ancak bu yöntem pek önerilen bir yöntem olmadığı için çok kullanılmıyor sektörde de. İlk db oluşturma esnasında başarılı ama mevcut db için tablo oluşturuyor mu bilmiyorum.
    Eğer bu sorununuzu çözerse ben komple yanlış anlamışım demektir sizi

    https://jasonwatmore.com/post/2019/1...ase-on-startup
  • 22-04-2020, 13:52:11
    #8
    DBFirst uygulamissaniz islem basit.. DB yi nasil eklediniz? DBfirst mü code-first mü?