Entity Framework İle Takıldığım Yer.
-
ASP.NET MVC ile bir proje geliştiriyorumda biyerde sorun yaşadım sorunum entity framework ile alakalı ADO.NET Codefirst ile oluşturdum modeli, Veritabanımın sorun yaşadığım kısmı aşağıdaki resimde görülen 3 tablo arasında oluyor, Şöyleki;
Ben " model. " dediğimde içerisinde " tags " tablosu geliyor fakat " tags " içerisindeki " tName " değerini çekmek istediğimde " tags" dan sonraki boş geliyor
Sorunla alakalı resim: Ben documents.tags.tName çekmek istiyorum fakat bunu göremiyorum neden acaba ?
Eğitim videolarını izlediğim kişi aynı şekilde çekebiliyordu.
-
modelinde tags classı List tipinde olduğu için ulaşamıyorsun, eğer tags modelin birebir relationlıysa list kısmını kaldırıp ulaşabilirsin(tablo yapın buna müsait değil anladığım kadarıyla). Diğer yöntem ise docs.tags.Select(x=> x.tName) diyerek değerini alabilirsin.
-
Tags tablosu direk olarak documents ile relationlı değil diagramda olduğu gibi arada bir documentTags tablosu var ve bunun üzerinden geliyor tags tablosu büyük ihtimalle.
Bu Tags tablosunun bide products tablosuyla productTags şeklinde bir ilişkisi var. İkinci şekilde deniyecem şimdi ama direk ulaşabilsem işime gelirdi açıkcası.
Benim burda yapmaya çalıştığım şey Ürünler ve Dökümanlarım var sitede bunalara verdiğim taglara ulaşmak için arada ara bir tablo kullanıyorum dökümanId ve TagId tutmak için.
-
Kazekage bunu yazdı
Tags tablosu direk olarak documents ile relationlı değil diagramda olduğu gibi arada bir documentTags tablosu var ve bunun üzerinden geliyor tags tablosu büyük ihtimalle.
Bu Tags tablosunun bide products tablosuyla productTags şeklinde bir ilişkisi var. İkinci şekilde deniyecem şimdi ama direk ulaşabilsem işime gelirdi açıkcası.
Benim burda yapmaya çalıştığım şey Ürünler ve Dökümanlarım var sitede bunalara verdiğim taglara ulaşmak için arada ara bir tablo kullanıyorum dökümanId ve TagId tutmak için.
hocam dediklerinle yaptığın birbiriyle uyuşmuyor, tags. nokta dediğinde tags modelin 1'e n ilişkisi olduğu için doğal olarak göremiyorsun. 1 - 1 olarak ilişkilendirirsen görebilirsin.
şöyle örnek veriyim;
user tablomuz
id - username
1 - ali
2 - mehmet
numbers tablomuz
id - userid - number
1 - 1 - 1234567890
2 - 1 - 9876543210
yani sen xyz.user. dediğinde 1 id'sine ait 2 telefon kaydı var. User tablosundaki bir satıra ait, numbers tablosunda n tane kayıt olabilir(1 - n ilişki)
senin yaptığında tam olarak bu, documentTags tablondaki diagram çizgisini farkettiysen araya atılan çizgide anahtar(burada tek bir kayıt olacak), sonsuzluk işareti olan yerlerde(çoklu kayıt olacak) anlamını taşır.
sonuç olarak .Select() şeklinde kullanacaksın. Sıkıntı yaşarsan özelden uzak bağlantı gönder yardımcı olayım.
-
Tamamdır ben o noktayı kaçırmışım işin garibi bilge adamın eğitim videosunu izliyorum ordaki anlatan kişide bu şekilde yaptı dediğim şekilde çekiyordu neyse artık, Bilgilendirme için çok sağol ama dediğin şekilde mesela ben .select() kullandığımda bana bu hangi veriyi getirecek butun taglarimi yoksa tek bir tag mi döndürecek. çoklu döndürüyorsa bunudamı döngü ile eklemem gerek.
-
Tablolardaki isimlendirmeler okunabilir değil bence hocam. Mesela tName yerine tagName, tag_name falan yazsan daha okunabilir olabilir.
-
Hannibal ben uzun zamandir boyle yaziyorum zaten tablonun adi belli oldugu icin anlamasi kolay oluyor mantiken tags.tag_name bidaha tag yazmak isime gelmiyor, genelde millet direk id name felan koyuyor oda olabilir ama entityden once bos birakmak sorun olabiliyordu o zamanlarda boyle alistim bende :)