LINQ - SQL

LINQ to SQL ऑब्जेक्ट के रूप में रिलेशनल डेटा के प्रबंधन के लिए एक इंफ्रास्ट्रक्चर (रन-टाइम) प्रदान करता है। यह .NET फ्रेमवर्क के संस्करण 3.5 का एक घटक है और एब्सीडेंस ऑब्जेक्ट में भाषा-एकीकृत प्रश्नों का अनुवाद SQL में करता है। इन प्रश्नों को निष्पादन के उद्देश्य के लिए डेटाबेस में भेजा जाता है। डेटाबेस से परिणाम प्राप्त करने के बाद, LINQ से SQL फिर से वस्तुओं में अनुवाद करता है।

LINQ To SQL का परिचय

अधिकांश ASP.NET डेवलपर्स के लिए, LINQ to SQL (DLINQ के रूप में भी जाना जाता है) भाषा एकीकृत क्वेरी का एक विद्युतीकरण हिस्सा है क्योंकि यह सामान्य LINQ अभिव्यक्तियों का उपयोग करके SQL सर्वर डेटाबेस में डेटा को क्वेरी करने की अनुमति देता है। यह डेटा को अपडेट करने, हटाने और सम्मिलित करने की भी अनुमति देता है, लेकिन एकमात्र दोष जिससे यह ग्रस्त है वह SQL सर्वर डेटाबेस के लिए इसकी सीमा है। हालाँकि, ADO.NET पर LINQ से SQL में LINQ के कई फायदे हैं जैसे कम जटिलता, कोडिंग की कुछ लाइनें और बहुत कुछ।

नीचे एक आरेख है जो LINQ से SQL के निष्पादन वास्तुकला को दर्शाता है।

LINQ to SQL का उपयोग कैसे करें?

Step 1- डेटाबेस सर्वर के साथ एक नया "डेटा कनेक्शन" बनाएं। दृश्य और बन्दी; सर्वर एक्सप्लोरर और बन्दी; डेटा कनेक्शन और बन्दी; कनेक्शन जोड़ें

Step 2 - SQL वर्ग फ़ाइल में LINQ जोड़ें

Step 3 - डेटाबेस से तालिकाओं का चयन करें और नई LINQ में SQL क्लास फ़ाइल में खींचें और छोड़ें।

Step 4 - वर्ग फ़ाइल में जोड़े गए टेबल।

LINQ to SQL के साथ क्वेरी करना

LINQ to SQL के साथ किसी क्वेरी को निष्पादित करने के नियम मानक LINQ क्वेरी के समान है अर्थात क्वेरी को आस्थगित या तत्काल निष्पादित किया जाता है। LINQ से SQL के साथ क्वेरी के निष्पादन में विभिन्न घटक हैं जो एक भूमिका निभाते हैं और ये निम्नलिखित हैं।

  • LINQ to SQL API - एक आवेदन की ओर से क्वेरी निष्पादन का अनुरोध करता है और इसे LINQ को SQL प्रदाता को भेज देता है।

  • LINQ to SQL Provider - क्वेरी को Transact SQL (T-SQL) में कनवर्ट करता है और ADO प्रदाता को निष्पादन के लिए नई क्वेरी भेजता है।

  • ADO Provider - क्वेरी के निष्पादन के बाद, SQLR को एक DataReader के रूप में परिणाम LINQ SQL प्रदाता को भेजें जो बदले में इसे उपयोगकर्ता ऑब्जेक्ट के रूप में परिवर्तित करता है।

यह ध्यान दिया जाना चाहिए कि LINQ से SQL क्वेरी को निष्पादित करने से पहले, डेटा स्रोत से डेटा स्रोत से कनेक्ट करना महत्वपूर्ण है।

LINQ To SQL का उपयोग करके डालें, अपडेट करें और डिलीट करें

जोड़ें या सम्मिलित करें

C#

using System;
using System.Linq;

namespace LINQtoSQL {
   class LinqToSQLCRUD {
      static void Main(string[] args) {
      
         string connectString = System.Configuration.ConfigurationManager.ConnectionStrings["LinqToSQLDBConnectionString"].ToString();

         LinqToSQLDataContext db = new LinqToSQLDataContext(connectString);           

         //Create new Employee
		 
         Employee newEmployee = new Employee();
         newEmployee.Name = "Michael";
         newEmployee.Email = "[email protected]";
         newEmployee.ContactNo = "343434343";
         newEmployee.DepartmentId = 3;
         newEmployee.Address = "Michael - USA";

         //Add new Employee to database
         db.Employees.InsertOnSubmit(newEmployee);

         //Save changes to Database.
         db.SubmitChanges();

         //Get new Inserted Employee            
         Employee insertedEmployee = db.Employees.FirstOrDefault(e ⇒e.Name.Equals("Michael"));

         Console.WriteLine("Employee Id = {0} , Name = {1}, Email = {2}, ContactNo = {3}, Address = {4}",
                          insertedEmployee.EmployeeId, insertedEmployee.Name, insertedEmployee.Email, 
                          insertedEmployee.ContactNo, insertedEmployee.Address);

         Console.WriteLine("\nPress any key to continue.");
         Console.ReadKey();
      }
   }
}

VB

Module Module1

   Sub Main()
   
      Dim connectString As String = System.Configuration.ConfigurationManager.ConnectionStrings("LinqToSQLDBConnectionString").ToString()

      Dim db As New LinqToSQLDataContext(connectString)

      Dim newEmployee As New Employee()
	  
      newEmployee.Name = "Michael"
      newEmployee.Email = "[email protected]"
      newEmployee.ContactNo = "343434343"
      newEmployee.DepartmentId = 3
      newEmployee.Address = "Michael - USA"
     
      db.Employees.InsertOnSubmit(newEmployee)
     
      db.SubmitChanges()
     
      Dim insertedEmployee As Employee = db.Employees.FirstOrDefault(Function(e) e.Name.Equals("Michael"))

      Console.WriteLine("Employee Id = {0} , Name = {1}, Email = {2}, ContactNo = {3}, 
         Address = {4}", insertedEmployee.EmployeeId, insertedEmployee.Name,
         insertedEmployee.Email, insertedEmployee.ContactNo, insertedEmployee.Address)

      Console.WriteLine(vbLf & "Press any key to continue.")
      Console.ReadKey()
	 
   End Sub
  
End Module

जब C # या VB के उपरोक्त कोड को संकलित और चलाया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Emplyee ID = 4, Name = Michael, Email = [email protected], ContactNo = 
343434343, Address = Michael - USA

Press any key to continue.

अपडेट करें

C#

using System;
using System.Linq;

namespace LINQtoSQL {
   class LinqToSQLCRUD {
      static void Main(string[] args) {
      
         string connectString = System.Configuration.ConfigurationManager.ConnectionStrings["LinqToSQLDBConnectionString"].ToString();

         LinqToSQLDataContext db = new LinqToSQLDataContext(connectString);

         //Get Employee for update
         Employee employee = db.Employees.FirstOrDefault(e =>e.Name.Equals("Michael"));

         employee.Name = "George Michael";
         employee.Email = "[email protected]";
         employee.ContactNo = "99999999";
         employee.DepartmentId = 2;
         employee.Address = "Michael George - UK";

         //Save changes to Database.
         db.SubmitChanges();

         //Get Updated Employee            
         Employee updatedEmployee = db.Employees.FirstOrDefault(e ⇒e.Name.Equals("George Michael"));

         Console.WriteLine("Employee Id = {0} , Name = {1}, Email = {2}, ContactNo = {3}, Address = {4}",
                          updatedEmployee.EmployeeId, updatedEmployee.Name, updatedEmployee.Email, 
                          updatedEmployee.ContactNo, updatedEmployee.Address);

         Console.WriteLine("\nPress any key to continue.");
         Console.ReadKey();
      }
   }
}

VB

Module Module1

   Sub Main()
  
      Dim connectString As String = System.Configuration.ConfigurationManager.ConnectionStrings("LinqToSQLDBConnectionString").ToString()

      Dim db As New LinqToSQLDataContext(connectString)

      Dim employee As Employee = db.Employees.FirstOrDefault(Function(e) e.Name.Equals("Michael"))

      employee.Name = "George Michael"
      employee.Email = "[email protected]"
      employee.ContactNo = "99999999"
      employee.DepartmentId = 2
      employee.Address = "Michael George - UK"

      db.SubmitChanges()
          
      Dim updatedEmployee As Employee = db.Employees.FirstOrDefault(Function(e) e.Name.Equals("George Michael"))

      Console.WriteLine("Employee Id = {0} , Name = {1}, Email = {2}, ContactNo = {3},
         Address = {4}", updatedEmployee.EmployeeId, updatedEmployee.Name, 
         updatedEmployee.Email, updatedEmployee.ContactNo, updatedEmployee.Address)

      Console.WriteLine(vbLf & "Press any key to continue.")
      Console.ReadKey()
	  
   End Sub
   
End Module

जब C # या Vb के उपरोक्त कोड को संकलित किया जाता है और चलाया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Emplyee ID = 4, Name = George Michael, Email = [email protected], ContactNo = 
999999999, Address = Michael George - UK

Press any key to continue.

हटाएं

C#

using System;
using System.Linq;

namespace LINQtoSQL {
   class LinqToSQLCRUD {
      static void Main(string[] args) {
      
         string connectString = System.Configuration.ConfigurationManager.ConnectionStrings["LinqToSQLDBConnectionString"].ToString();

         LinqToSQLDataContext db = newLinqToSQLDataContext(connectString);

         //Get Employee to Delete
         Employee deleteEmployee = db.Employees.FirstOrDefault(e ⇒e.Name.Equals("George Michael"));

         //Delete Employee
         db.Employees.DeleteOnSubmit(deleteEmployee);

         //Save changes to Database.
         db.SubmitChanges();

         //Get All Employee from Database
         var employeeList = db.Employees;
         foreach (Employee employee in employeeList) {
            Console.WriteLine("Employee Id = {0} , Name = {1}, Email = {2}, ContactNo = {3}",
               employee.EmployeeId, employee.Name, employee.Email, employee.ContactNo);
         }            

         Console.WriteLine("\nPress any key to continue.");
         Console.ReadKey();
      }
   }
}

VB

Module Module1

   Sub Main()
   
      Dim connectString As String = System.Configuration.ConfigurationManager.ConnectionStrings("LinqToSQLDBConnectionString").ToString()

      Dim db As New LinqToSQLDataContext(connectString)

      Dim deleteEmployee As Employee = db.Employees.FirstOrDefault(Function(e) e.Name.Equals("George Michael"))

      db.Employees.DeleteOnSubmit(deleteEmployee)

      db.SubmitChanges()

      Dim employeeList = db.Employees
	  
      For Each employee As Employee In employeeList
         Console.WriteLine("Employee Id = {0} , Name = {1}, Email = {2}, ContactNo = {3}",
            employee.EmployeeId, employee.Name, employee.Email, employee.ContactNo)
      Next 

      Console.WriteLine(vbLf & "Press any key to continue.")
      Console.ReadKey()
   End Sub
   
End Module

जब C # या VB के उपरोक्त कोड को संकलित और चलाया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Emplyee ID = 1, Name = William, Email = [email protected], ContactNo = 999999999
Emplyee ID = 2, Name = Miley, Email = [email protected], ContactNo = 999999999
Emplyee ID = 3, Name = Benjamin, Email = [email protected], ContactNo = 

Press any key to continue.