优雅之美:使用EF6连接MSSQL

1. EF介绍

Entity Framework(EF)是Microsoft开发的一种对象关系映射(ORM)框架,可用于将数据库中的数据映射到从中读取和写入数据的应用程序中的对象模型中。EF为开发人员提供了一种面向对象的编程体验,抽象了与持久性相关的细节,并简化了访问数据的过程。EF还提供了相应的工具,帮助开发人员对数据库进行重构、更改模式等操作。

2. EF6连接MSSQL

2.1 首先,在Visual Studio中创建一个空的ASP.NET Web应用程序。

可以在Visual Studio中选择文件菜单,然后选择新建,再选择项目来创建。

2.2 安装Entity Framework 6

可以在Nuget包管理器中搜索Entity Framework 6,并将其安装到项目中。

PM> Install-Package EntityFramework -Version 6.4.4

2.3 创建MSSQL数据库

可以使用SQL Server Management Studio(SSMS)来创建一个新的数据库。

CREATE DATABASE SampleDatabase

2.4 创建MSSQL数据库表

可以使用以下SQL脚本来创建一个简单的表。

USE [SampleDatabase]

GO

CREATE TABLE [dbo].[Customers](

[Id] [int] IDENTITY(1,1) NOT NULL,

[Name] [nvarchar](50) NOT NULL,

[Address] [nvarchar](100) NOT NULL,

[City] [nvarchar](50) NOT NULL,

[State] [nvarchar](50) NOT NULL,

[ZipCode] [nvarchar](10) NOT NULL,

CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

2.5 创建模型类

可以通过创建一个简单的模型类来跟踪Customer表。

public class Customer

{

public int Id { get; set; }

public string Name { get; set; }

public string Address { get; set; }

public string City { get; set; }

public string State { get; set; }

public string ZipCode { get; set; }

}

2.6 创建EF上下文

可以创建一个EF上下文类来跟踪模型类中的实体,并将其映射到MSSQL数据库中的表。

public class SampleContext : DbContext

{

public SampleContext() : base("name=SampleConnectionString")

{

}

public virtual DbSet<Customer> Customers { get; set; }

}

在这个例子中,我们通过继承DbContext类来创建一个名为 SampleContext 的EF上下文类,它包含一个名为 Customers 的DbSet属性,用于跟踪Customer表。

在构造函数中,我们将连接字符串“SampleConnectionString”传递给基类的构造函数,以便EF知道如何连接到我们的MSSQL数据库。

注意:在Web.config文件中添加连接字符串。

<connectionStrings>

<add name="SampleConnectionString" connectionString="Server=localhost;Database=SampleDatabase;Trusted_Connection=True;" providerName="System.Data.SqlClient" />

</connectionStrings>

2.7 使用EF CRUD

现在,我们可以通过EF上下文类对我们的数据进行CRUD操作。

以下是一个读取Customer表中所有数据的简单示例。

using (var db = new SampleContext())

{

var customers = db.Customers.ToList();

foreach (var customer in customers)

{

Console.WriteLine($"Id: {customer.Id} Name: {customer.Name} Address: {customer.Address} City: {customer.City} State: {customer.State} ZipCode: {customer.ZipCode}");

}

}

可以使用其他常见的方法来创建、读取、更新和删除数据:Add、Find、Update和Remove等。

3. 总结

使用EF6连接MSSQL可以极大地简化访问数据的过程,让开发人员有更多的时间来关注应用程序的核心逻辑。

EF提供了各种各样的工具和方法,使数据库的访问变得简单易懂。通过上述步骤,您可以在不到10分钟的时间内创建一个使用EF6连接MSSQL的简单应用程序。

数据库标签