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
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
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.
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.
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.
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.
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.
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.
İ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
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi ORGANIKHOSAF -- 14 Eylül 2020; 1:50:57 >