📜  LINQ to SQL

📅  最后修改于: 2021-01-06 05:56:17             🧑  作者: Mango

LINQ to SQL(DBML文件)

LINQ to SQL是.NET Framework 3.5版的组件。它提供了运行时基础结构来将关系数据作为对象进行管理。

它允许我们使用LINQ查询访问SQL数据库并从中获取数据。它使我们能够使用LINQ查询对SQL之类的表执行选择,插入,更新和删除操作。

在LINQ to SQL中,关系数据库的数据模型被映射到对象模型,并且在执行将LINQ对象模型转换为SQL以从数据库中获取所需数据的同时,从数据库返回数据时,LINQ to SQL将将SQL结果转换为LINQ对象模型。

这是LINQ to SQL架构的图形表示。

通过使用LINQ to SQL,我们可以执行多种操作,例如插入,删除和更新。与ADO.Net进行比较时,我们可以用最少的编码获得数据。

创建LINQ to SQL并在Web应用程序中使用

在这里,我们以一个示例为例,说明如何在asp.net Web应用程序中创建和使用LINQ to SQL(dbml文件)。

首先,我们创建一个新的应用程序。为此,打开Visual Studio->转到文件->新建->项目

现在,我们选择“ Asp.Net Empty Web Application ”,并将项目名称命名为“ LINQTOSQL ”,然后单击“确定”,如下所示。

至此,项目创建完成。在使用LINQ to SQL的应用程序中,我们需要创建一个“ DBML ”文件。 DBML文件将包含源代码,这将使我们能够编写LINQ查询来从SQL数据库获取数据。

要创建DBML文件,请在项目上单击鼠标右键->转到添加->选择新项->选择模板LINQ to SQL ,并将名称命名为“ Student ”,如下所示。

将LINQ添加到SQL dbml文件后,将打开窗口,如下所示:

在这里,我们观察到,左侧部分有两个部分。在这里,我们可以将表添加或创建为对象,并且在右侧,我们可以添加所需的存储过程来获取数据。

现在打开服务器资源管理器,右键单击数据连接,然后选择添加连接,如下所示。

选择添加连接后,将弹出一个新的弹出窗口,我们需要选择数据源。在这里,我们将连接到现有数据库。这就是为什么我们选择“ Microsoft SQL Server ”并单击“ Continue”(继续)的原因,如下所示:

现在输入要连接的数据库服务器详细信息,如下所示:

输入所有详细信息以连接数据库后,单击“确定”按钮。现在添加数据库之后,我们将使用以下脚本创建新表StudentData。

Create Database College
Use College
Create table StudentData
(
    RollNumber int primary key,
    StudentName varchar(50),
    FatherName varchar(50),
    MotherName varchar(50)

)
Insert into StudentData(RollNumber,StudentName,FatherName,MotherName) values(101,'Akshay','Rakesh Tyagi','Samlesh Tyagi')
Insert into StudentData(RollNumber,StudentName,FatherName,MotherName) values(102,'Vaishali','Ashok Tyagi','Munesh Tyagi')
Insert into StudentData(RollNumber,StudentName,FatherName,MotherName) values(103,'Arpita','Arvind Rai','Anni Rai')
Select *from StudentData

数据库中创建StudentData表后,将显示为:

现在,我们将表格拖放到Student.dbml文件中。

现在,我们将看到如何使用LINQ to SQL在我们的应用程序中获取StudentData。为此,我们将在应用程序上单击鼠标右键->选择添加->新建项目->选择Web表单->将名称命名为Default.aspx ,然后单击确定按钮。

现在,我们将打开Default.aspx页面,并编写如下所示的代码。

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>





    
    


    
Student Roll No
Student Name
Father's Name
Mother's Name
   

这是应用程序的设计阶段。

设计

在这里,我们将编写用于从收集的数据库中搜索学生信息的代码。为了实现上述设计的功能,我们将在Default.Aspx.cs页面中编写代码。

Default.Aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
    {
        StudentDataContext sd = new StudentDataContext();
        StudentData student = (from s in sd.StudentDatas where s.RollNumber.ToString() == TextBox1.Text select s).FirstOrDefault();
        if(student==null)
        {
            Label2.Text = "No Record Found";
        }
        else
        {
            Label2.Text = "Record Found successfully";
            TextBox2.Text = student.StudentName;
            TextBox3.Text = student.FatherName;
            TextBox4.Text = student.MotherName;
        }
    }
}

现在,我们将运行代码,并看到如下所示的输出。

这是LINQ to SQL示例的结果。

输出值