คำสั่งและ / หรือข้อกำหนดการสืบค้นที่ออกแบบมาอย่างดี
ฉันได้ค้นหาวิธีแก้ปัญหาที่ดีสำหรับปัญหาที่นำเสนอโดยรูปแบบพื้นที่เก็บข้อมูลทั่วไปมาระยะหนึ่งแล้ว (รายการวิธีการเพิ่มขึ้นสำหรับการสืบค้นเฉพาะทาง ฯลฯ ดู: http://ayende.com/blog/3955/repository- is-the-new-singleton ) ฉันชอบแนวคิดในการใช้การสืบค้นคำสั่งโดยเฉพาะอย่างยิ่งการใช้รูปแบบข้อมูลจำเพาะ อย่างไรก็ตามปัญหาของฉันเกี่ยวกับข้อกำหนดคือมันเกี่ยวข้องกับเกณฑ์ของการเลือกอย่างง่ายเท่านั้น (โดยทั่วไปคือ where clause) และไม่ได้จัดการกับปัญหาอื่น ๆ ของการสืบค้นเช่นการเข้าร่วมการจัดกลุ่มการเลือกส่วนย่อยหรือการฉายภาพเป็นต้น โดยพื้นฐานแล้วการค้นหาเพิ่มเติมทั้งหมดจะต้องผ่านการค้นหาจำนวนมากเพื่อให้ได้ชุดข้อมูลที่ถูกต้อง (หมายเหตุ: ฉันใช้คำว่า "คำสั่ง" ในรูปแบบคำสั่งหรือที่เรียกว่าวัตถุแบบสอบถามฉันไม่ได้พูดถึงคำสั่งเช่นเดียวกับในการแยกคำสั่ง / คิวรีที่มีความแตกต่างระหว่างแบบสอบถามและคำสั่ง (อัปเดตลบ แทรก)) ดังนั้นฉันกำลังมองหาทางเลือกอื่นที่ห่อหุ้มข้อความค้นหาทั้งหมด แต่ก็ยังมีความยืดหยุ่นเพียงพอที่คุณจะไม่เพียง แต่แลกเปลี่ยนที่เก็บสปาเก็ตตี้เพื่อเพิ่มคลาสคำสั่ง ฉันเคยใช้เช่น Linqspecs และในขณะที่ฉันพบคุณค่าบางอย่างในการกำหนดชื่อที่มีความหมายให้กับเกณฑ์การคัดเลือก แต่ก็ไม่เพียงพอ บางทีฉันอาจกำลังมองหาวิธีการแก้ปัญหาแบบผสมผสานที่ผสมผสานหลายวิธีเข้าด้วยกัน ฉันกำลังมองหาวิธีแก้ปัญหาที่ผู้อื่นอาจพัฒนาขึ้นเพื่อแก้ไขปัญหานี้หรือแก้ไขปัญหาอื่น แต่ยังคงเป็นไปตามข้อกำหนดเหล่านี้ ในบทความที่เชื่อมโยง Ayende แนะนำให้ใช้บริบท nHibernate โดยตรง แต่ฉันรู้สึกว่าส่วนใหญ่ทำให้ชั้นธุรกิจของคุณซับซ้อนเพราะตอนนี้ต้องมีข้อมูลการสืบค้นด้วย ฉันจะมอบรางวัลให้กับสิ่งนี้ทันทีที่ระยะเวลารอผ่านพ้นไป ดังนั้นโปรดทำให้โซลูชันของคุณมีค่าพร้อมคำอธิบายที่ดีและฉันจะเลือกทางออกที่ดีที่สุดและเพิ่มคะแนนให้กับนักวิ่ง หมายเหตุ: ฉันกำลังมองหาสิ่งที่เป็นไปตาม ORM ไม่จำเป็นต้องเป็น EF หรือ nHibernate อย่างชัดเจน …