Şimdi Ara

Asp net core 2 farklı dbcontexte ait tablolar arası relationship

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
387
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri
  • Son Yorum 9 ay
  • Cevaplayan Üyeler 2
  • Konu Sahibinin Yazdıkları 3
  • Ortalama Mesaj Aralığı 7 gün 15 saat 24 dakika
  • Son 1 Saatteki Mesajlar 1
  • Haberdar Edildiklerim (Alıntılar) 2
  • Konuya En Çok Yazanlar
  • ORGANIKHOSAF (3 mesaj) mahoni_38 (3 mesaj)
  • Konuya Yazanların Platform Dağılımı
  • Masaüstü (5 mesaj) Mobil (1 mesaj)
  • @
0 oy
Öne Çıkar
Tüm Forumlar >> Web Tasarım - Programlama >> Yazılım Geliştirme >> Asp / Asp.NET >> Asp net core 2 farklı dbcontexte ait tablolar arası relationship
Sayfaya Git:
Sayfa:
1
Giriş
Mesaj
  • Yarbay
    2626 Mesaj
    Konu Sahibine Özel
    Merhabalar migration ile alakalı bir problemim var.Projemde aspnet core identity kullanıyorum.Yapmak istediğim şey user ile post arasında bire çok ilişki kurmak.Problem burada çıkıyor.
    İki tane context oldugundan çıkarıyor galiba ama bilmiyorum.
    Post entity : https://prnt.sc/ug1rja Yeni eklenenler parentid,user,userid
    User entity : https://prnt.sc/ug1t0u yeni eklenen List<Post> Posts
    Şimdi olaya geleyim benim contextlerim 2 tane ama database tek. Identitydbcontext ile normal database tabloların contexti farklı yani databasedeki normal tablolar ile identyi oluşturan contextler farklı 
    Şöyle DBcontext : https://prnt.sc/ug1tbz
    IdentityDbContext : https://prnt.sc/ug1thh
    DB tablolarım şu şekilde : https://prnt.sc/ug1xa2
    Ben şimdi dotnet ef migrations add UserPostUpdate --context MySite2Context --project "DataAccess" --startup-project "WebAPI" yazarak migration eklediğimde migrationu açıp bakıyorum ne oluşturmuş diye User diye tablo oluşturuyor kendisi buyrun oluşan migration : https://prnt.sc/ug1yj8 .Oluşturmaması gerek AspNetUsers tablosunu kullanmasını istiyorum ben. Bu şekil migration ekliyor Sonra ben bu migrationu şu hale getiriyorum elle https://prnt.sc/ug1yyk create table user kısmını tamamen siliyorum ve bu en altdaki yerde principaltable da user yazanı AspNetUsers yapıyorum databasedeki tablo ismiyle uyumlu olsun diye en üstdeki name: "FK_Posts_User_UserId",buna dokunmuyorum sonra bu migrationu update ettikten sonra login olamıyorum bozuluyor login olma olayı registerda çalışmıyor.apiye bağlanırken 500 hata kodu veriyor bunları yapmadan önce ama sorunsuz çalışıyor.

    Bu migration olayları bozuyor ama bu user post olayınıda yapmam gerek. Ben bu işi nasıl yaparım ? Şimdi ben bunu tek contextde birleştirmeye kalktım bu sefer efentityrepositorybase kısmı bozuluyor çünkü identitydbcontexti inherit etmem gerek buda problem çıkarıyor.Bu efrepository =https://prnt.sc/ugpanx buda ef repositoryden inherit almış örnek kod :https://prnt.sc/ugpdc6

    Güncelleme: İki farkli contexte ait tablolar arasi relationship olmuyormus benim bunu tek bir contexte tasimam lazim ve bu context dbcontextden degil idenditycontextden inherit edilmeli ve entity repository basede buna uygun olmali ben nasıl yapabilirim bunu



    < Bu mesaj bu kişi tarafından değiştirildi ORGANIKHOSAF -- 14 Eylül 2020; 1:50:57 >



    |
    |




  • Yarbay
    2736 Mesaj

    Aslinda 2 ayri context degil. Db context Identity contextden miras alip tek bir context sahip olmalisin.

  • Yarbay
    2626 Mesaj
    Konu Sahibine Özel

    Dediğiniz gibi yaparak çözmüştüm sorunu abi ama repository base ve diğer kısmı değiştirmek zorunda kaldım sorunsuz çalışıyor ama doğru bir kullanım mı bilemedim.



    Öncesi şöyle idi


    Repository base : https://prnt.sc/ugpanx?utm_campaign=DonanimHaber&utm_medium=referral&utm_source=DonanimHaber


    EfRepository base : https://prnt.sc/ugpdc6?utm_campaign=DonanimHaber&utm_medium=referral&utm_source=DonanimHaber



    IdentityDbContextden türettiğimde yapıyı değiştirmek zorunda kaldım hata alıyordum şu tarza çevirdim.



    Repository base : https://prnt.sc/v2ahmz


    EfRepository bae : https://prnt.sc/v2ai0o



    Bu tarza çevirmekte baya zorlanmıştım. Kaynak bulamadıydım bu adamın yaptığı gibi yapınca identitydbcontext ile oluşturduğum şeyde repository kullanabildim.


    https://www.codewithmukesh.com/blog/repository-pattern-in-aspnet-core/ 




    < Bu mesaj bu kişi tarafından değiştirildi ORGANIKHOSAF -- 19 Ekim 2020; 15:7:13 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
    |
    |
    mahoni_38 kullanıcısının, bahsedilen mesajını gör




  • Yarbay
    2736 Mesaj
    quote:

    Orijinalden alıntı: ORGANIKHOSAF

    Dediğiniz gibi yaparak çözmüştüm sorunu abi ama repository base ve diğer kısmı değiştirmek zorunda kaldım sorunsuz çalışıyor ama doğru bir kullanım mı bilemedim.



    Öncesi şöyle idi


    Repository base : https://prnt.sc/ugpanx?utm_campaign=DonanimHaber&utm_medium=referral&utm_source=DonanimHaber


    EfRepository base : https://prnt.sc/ugpdc6?utm_campaign=DonanimHaber&utm_medium=referral&utm_source=DonanimHaber



    IdentityDbContextden türettiğimde yapıyı değiştirmek zorunda kaldım hata alıyordum şu tarza çevirdim.



    Repository base : https://prnt.sc/v2ahmz


    EfRepository bae : https://prnt.sc/v2ai0o



    Bu tarza çevirmekte baya zorlanmıştım. Kaynak bulamadıydım bu adamın yaptığı gibi yapınca identitydbcontext ile oluşturduğum şeyde repository kullanabildim.


    https://www.codewithmukesh.com/blog/repository-pattern-in-aspnet-core/ 

    Niye mecbur kalasin anlamadim. Identity DbContext den turemis bir nesne dolayisla ikisi de ayni ozellikleri iceriyor.


    su amacsiz bir kod


    https://prnt.sc/v2ai0o



    MySite2Context ile siki sikiya bagli. Oysa ilk orneklerdeki gibi herhangi bir dbContext gelmesi ve onu entity type ile Context.Set<x> ile cagirman mumkun.


    Ayrica her add isleminde bir dbContext uretir ve dispose edersen context icindeki baglari da kaybedersin. 1 request icin 1 DbContext nesnesi yeterli. Depedeny Injection yapmanin bir diger mantigi nesnelerin yasam dongulerini belirleyebilmek.


    Hep diyorum sen aspnet boilerplate ac oku. O nasil generic reposity kurmis bak.





  • Yarbay
    2626 Mesaj
    Konu Sahibine Özel

    Hata almıştım çözememiştim abi aşağıda aldığım hatayı gösterdim tekrardan eski haline çevirdim.

    Aspnet boilerplate baya iyi aslında siz ilk dediğinizde biraz bakınmıştım ama kendim yazmayı öğrenmeden hazır şeylere geçmeyeyim diye düşünmüştüm.

    Şimdi şu yapı ile alakalı aldığım hatayı göstereyim.


    Önce yapının sslerini veriyim

    Bu benim contextim : https://prnt.sc/v2h3q6


    EfRepositoryBase: https://prnt.sc/v2h6w7


    Buda efden türettiğim hata aldığım yer : https://prnt.sc/v2h78y


    Bu ise hatalarin resmi
    https://prnt.sc/v2h8ti





    bunları çözemediğim için yapıyı değiştirmiştim <User,Role,string> verdiğimde hata buna dönüyor https://prnt.sc/v2ha4q



    < Bu mesaj bu kişi tarafından değiştirildi ORGANIKHOSAF -- 20 Ekim 2020; 18:9:31 >
    |
    |
    mahoni_38 kullanıcısının, bahsedilen mesajını gör




  • Yarbay
    2736 Mesaj
    quote:

    Orijinalden alıntı: ORGANIKHOSAF

    Hata almıştım çözememiştim abi aşağıda aldığım hatayı gösterdim tekrardan eski haline çevirdim.

    Aspnet boilerplate baya iyi aslında siz ilk dediğinizde biraz bakınmıştım ama kendim yazmayı öğrenmeden hazır şeylere geçmeyeyim diye düşünmüştüm.

    Şimdi şu yapı ile alakalı aldığım hatayı göstereyim.


    Önce yapının sslerini veriyim

    Bu benim contextim : https://prnt.sc/v2h3q6


    EfRepositoryBase: https://prnt.sc/v2h6w7


    Buda efden türettiğim hata aldığım yer : https://prnt.sc/v2h78y


    Bu ise hatalarin resmi
    https://prnt.sc/v2h8ti





    bunları çözemediğim için yapıyı değiştirmiştim <User,Role,string> verdiğimde hata buna dönüyor https://prnt.sc/v2ha4q

    Aslında tam tersi. Kullanmadığın, ihtiyacını hissetmediğin ve sorunun çözmeyen kodu sadece "best practise" diye çalışmak sana pek bir şey katmaz. Önce kullan gör sonra daha iyisini elbette kendin implemente edebilirsin.

    |
    |




Sayfaya Git:
Sayfa:
1
Reklamlar
vp satın al;valorant vp satın al;Valorant VP Fiyat
Radyo Dinle
En ucuz kedi maması fiyatları
Sohbet
Google Play Kodu, LOL RP, Oyun Satış Sitesi
Bu sayfanın
Mobil sürümü
Mini Sürümü

BR5
1,109
1.2.165

Reklamlar
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.