แบบสอบถามแบบบูรณาการภาษาคืออะไร?

ภาษารวมแบบสอบถาม (LINQ) ให้ความสามารถในการรวมไวยากรณ์แบบสอบถามอย่างเปิดเผยเป็นภาษาที่จำเป็นส่วนใหญ่ C # และ VB.NET การพัฒนา LINQ สามารถแก้ไขปัญหาที่นักพัฒนาทำงานในสภาพแวดล้อมเชิงวัตถุเมื่อทำการสืบค้น มันถูกนำมาใช้เป็นส่วนหนึ่งของMicrosoft® .NET Framework เวอร์ชัน 3.5 ในเดือนพฤศจิกายน 2550 และในชื่อรหัส Visual Studio® "Orcas"

ก่อนที่จะมีการสร้างแบบสอบถามแบบรวมภาษาภาษา. NET ไม่มีวิธีดั้งเดิมในการสืบค้นฐานข้อมูลเชิงสัมพันธ์หรือเอกสาร XML นักพัฒนาที่เขียนในภาษาเหล่านี้ต้องฝัง SQL หรือ XQuery ตามลำดับเป็นสตริงและแมปข้อมูลผลลัพธ์ด้วยตนเองไปยังวัตถุ. NET สตริงการสืบค้นและการแมปที่ฝังตัวไม่สามารถตรวจสอบได้โดยคอมไพเลอร์. NET ทำให้สามารถค้นพบข้อผิดพลาดที่อาจเกิดขึ้นได้ในขณะใช้งาน

ผู้พัฒนาปัญหาอื่นประสบก่อนที่แบบสอบถามแบบรวมภาษาคือภาษา. NET มีไวยากรณ์เชิงวัตถุเชิงวัตถุคอลเลกชันของวัตถุ. NET โดยทั่วไปแล้วนักพัฒนาจะทำซ้ำมากกว่าแหล่งรวบรวมทั้งหมดสร้างคอลเลกชันผลลัพธ์ใหม่ตามเกณฑ์การค้นหา ผู้พัฒนาสามารถแปลงข้อมูลในขณะที่สร้างคอลเลกชันผลลัพธ์ วิธีนี้ยุ่งยาก แบบสอบถามแบบง่ายเลือกเขียนใน C # หรือ VB จะต้องมีอย่างน้อยห้าบรรทัดของรหัสในขณะที่แบบสอบถามเดียวกันจะต้องมีหนึ่งบรรทัดของรหัสในภาษาแบบสอบถาม

ความท้าทายของการสืบค้นภายในสภาพแวดล้อมเชิงวัตถุทำให้ Microsoft เป็นแรงผลักดันในการสร้าง LINQ LINQ จัดเตรียมไวยากรณ์คิวรีเพื่อเตือนความจำของ SQL ที่จะใช้ในแนวเดียวกับ C # หรือ VB พร้อมด้วยการตรวจสอบชนิดสแตติก เมื่อทำการสอบถามคอลเลกชัน. NET แทนที่จะใช้ลูปซ้อนกันนักพัฒนาสามารถใช้ไวยากรณ์ LINQ เพื่อเลือกรายการและแปลงข้อมูล ท่ามกลางข้อดีอื่น ๆ สิ่งนี้ส่งผลให้มีบรรทัดของโค้ดน้อยลงเมื่อเปรียบเทียบกับไวยากรณ์เชิงวัตถุ

เมื่อเข้าถึงแหล่งข้อมูลภายนอก LINQ และส่วนประกอบที่สนับสนุนลบความจำเป็นในการใช้ภาษาคิวรีแบบฝังตัวและการแมปข้อมูลภายในภาษา. NET ในการทำแผนที่ข้อมูล LINQ ขึ้นอยู่กับส่วนประกอบที่เรียกว่าผู้ให้บริการ LINQ LINQ-to-Objects เป็นผู้ให้บริการหุ้นที่เปิดใช้งาน LINQ เพื่อเข้าถึง. NET ในทำนองเดียวกันมีผู้ให้บริการในการเข้าถึงฐานข้อมูลเชิงสัมพันธ์และเอกสาร XML ผู้ให้บริการเหล่านี้ส่วนใหญ่เป็นส่วนประกอบของบุคคลที่สามซึ่งไม่รวมอยู่ใน. NET Framework ไม่คำนึงถึงผู้ให้บริการที่ใช้การสืบค้นทั้งหมดใช้ไวยากรณ์ LINQ เดียวกัน

ระหว่างไวยากรณ์คิวรีแบบรวมภาษาและตัวให้บริการคือไลบรารีของตัวดำเนินการคิวรีที่เพิ่มใน. NET Framework ซึ่งเป็นส่วนหนึ่งของสิ่งอำนวยความสะดวก LINQ ตัวดำเนินการเหล่านี้ทำงานเช่นการกรองการสั่งซื้อการตั้งค่าการดำเนินการตามทฤษฎีและการรวม เนื่องจากตัวดำเนินการเหล่านี้เป็นส่วนหนึ่งของ. NET Framework จึงสามารถใช้งานได้โดยไม่ต้องใช้ LINQ หากผู้พัฒนาเลือก