-repository
Veritabanından veri almak için eklenmiş bir grup ayrı sınıf kullanıyoruz ; her tablo için kendi havuzu.
Örneğin customerrepository
, müşterileri almak için her türlü yöntemi olan ve vacancyrepository
boş pozisyonları almak için her türlü yöntemi olan bir sınıfa sahibiz .
Bu şekilde bir şeyler yapmayla ilgili iki sorum var:
Birden çok tabloyu kapsayan verileri almaya ne dersiniz? Örneğin, henüz bir boşluk oluşturmayan tüm müşterileri gösteren bir ekranım var. Her iki depodan bir
customerrepository
kullanım yöntemivacancyrespository
veya her iki havuzdan sonuç döndürür mü ve hiyerarşide daha yüksek bir sınıf var mı (a diyelimdataservice
) ve her iki havuzdan da sonuçları alır ve 1 sonuçta birleştirir mi?böyle bir depo ne kadar mantıkla başa çıkabilir?
Ben sadece aktif kayıtları almak için bir depoda 'burada aktif == true' uygulamak için sorun yok, ya da bu basit mantık hiyerarşide daha yüksek bir sınıf tarafından ele alınmalıdır (diyelim adataservice
)?
Şu anda karşılaştığım örnek şudur:
Bir veya daha fazla soru içeren bir soru listemiz var.
Sorunun ayrı bir tabloda tutulan bir sonucu olabilir.
Bu nedenle, soru listesinin toplam sonucunu almak istediğinizde, questionlist
tablodan, soru tablosundan ve tablodan verileri birleştirmeniz gerekir questionstatus
.
Şu anda bu tablolar için 3 farklı havuzumuz var.
questionlistrepository
Liste numarası 12 için toplam sonucun ne olduğunu sorarsam, diğer iki depodan veri almak ve dolayısıyla bazı mantıklara sahip olmak gerekir, buna izin verilir mi?
Ya da questionlistdataservice
hangi depoların kullanılacağını bilen var mı?
Bir şey daha var: havuzlarımız, IQueryable
bir arama hizmetinin sonuçları kolayca birleştirebilmesi için bir sonuç verebilir, ancak durum böyle olmadığında, her üç tablonun tüm içeriğini veri tabanı.