เรากำลังใช้คลาสที่แยกจากกัน-repository
เพื่อต่อท้ายเรียกข้อมูลจากฐานข้อมูล สำหรับแต่ละตารางที่เก็บของตนเอง
ตัวอย่างเช่นเรามีcustomerrepository
คลาสที่มีวิธีการทุกอย่างเพื่อดึงลูกค้าและvacancyrepository
ที่มีวิธีการทุกชนิดเพื่อดึงตำแหน่งที่ว่าง
ฉันมีคำถามสองข้อเกี่ยวกับวิธีการทำสิ่งนี้:
วิธีรับข้อมูลที่ครอบคลุมหลายตาราง ตัวอย่างเช่นฉันมีหน้าจอที่แสดงลูกค้าทั้งหมดที่ยังไม่ได้สร้างตำแหน่งว่าง ที่สามารถ
customerrepository
ใช้วิธีการจากvacancyrespository
หรือทำทั้งสองอย่างที่เก็บกลับผลลัพธ์และจะมีระดับที่สูงขึ้นในลำดับชั้น (ชื่อให้ของมันdataservice
) ที่ได้รับผลจากทั้งเก็บและรวมเป็น 1 ผล?พื้นที่เก็บข้อมูลสามารถจัดการตรรกะได้เท่าใด
ฉันคิดว่ามันโอเคที่จะใช้ 'where active == true' ในที่เก็บเพื่อเรียกใช้เฉพาะเร็กคอร์ดที่ใช้งานอยู่หรือว่าควรจัดการตรรกะง่ายๆโดยคลาสที่สูงกว่าในลำดับชั้น (ลองตั้งชื่อ adataservice
)?
ตัวอย่างที่ฉันพบตอนนี้ก็คืออันนี้:
เรามีรายการคำถามซึ่งมีหนึ่งคำถามขึ้นไป
คำถามสามารถมีผลลัพธ์ซึ่งถืออยู่ในตารางแยกต่างหาก
ดังนั้นเมื่อคุณต้องการดึงผลลัพธ์รวมของรายการคำถามคุณต้องรวมข้อมูลจากquestionlist
ตารางตารางคำถามและquestionstatus
ตาราง
ตอนนี้เรามีที่เก็บข้อมูล 3 แห่งสำหรับตารางเหล่านี้
ถ้าฉันจะถามquestionlistrepository
สิ่งที่เป็นผลรวมสำหรับรายการหมายเลข 12 มันจะต้องได้รับข้อมูลจากสองที่เก็บอื่น ๆ และด้วยเหตุนี้มีตรรกะบางอย่างในนั้นที่ได้รับอนุญาต?
หรือมีquestionlistdataservice
ที่รู้ที่เก็บที่จะใช้?
อีกอย่างหนึ่ง: ที่เก็บข้อมูลของเราสามารถส่งผลIQueryable
ให้บริการโทรศัพท์สามารถรวมผลลัพธ์ได้อย่างง่ายดาย แต่ถ้าเป็นกรณีนี้ฉันไม่คิดว่ามันเป็นความคิดที่ดีที่จะดึงเนื้อหาทั้งหมดของตารางทั้งสามจาก ฐานข้อมูล