在本文中,将探讨如何使用.NET Core框架来构建一个数据访问层(Data Access Layer, DAL)库项目。这包括安装必要的工具、创建数据库和表、生成实体以及实现数据访问接口。
在开始之前,请确保计算机上已经安装了以下所有先决条件。如果没有,请逐一下载并安装。
首先,从以下链接下载并安装Visual Studio 2015及其更新3:
如果已经安装了Visual Studio 2015但尚未更新到更新3,请从以下链接下载并安装:
接下来,下载并安装.NET Core1.0.1:
Entity Framework Core 1.0.0 RTM 目前还不支持类库项目的迁移。有关这个问题的详细信息,请参考以下链接:
在安装完所有先决条件组件后,使用.NET Core模板创建一个示例ASP.NET Core应用程序项目。可以在这个Web应用程序中使用类库项目。首先,需要创建两个.NET Core库项目——一个用于业务逻辑,另一个用于数据访问层。
按照相同的步骤创建数据访问层库项目。最终,项目结构将如下所示:
删除现有代码,并在业务库项目的project.json
文件中添加以下代码:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netcoreapp1.0": {}
}
}
需要将类库作为.NET Core应用程序项目来创建。为此,需要在数据访问层库的project.json
文件中添加以下代码:
{
"buildOptions": {
"emitEntryPoint": true
},
"frameworks": {
"netcoreapp1.0": {}
},
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0"
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final"
}
}
}
还需要添加一个静态的void Main()
方法来完成.NET Core应用程序。为此,需要在类库项目中添加一个空的Program.cs
文件。请参考以下代码:
public class Program
{
public static void Main(string[] args)
{
}
}
现在可以在SQL Server中创建数据库和表,并在其中添加存储过程。请在SQL Server中运行以下脚本:
USE [master]
GO
CREATE DATABASE [ContactDB] CONTAINMENT = NONE
ON PRIMARY (
NAME = N'ContactDB',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\ContactDB.mdf',
SIZE = 5120KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB
)
LOG ON (
NAME = N'ContactDB_log',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\ContactDB_log.ldf',
SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%
)
GO
以上脚本创建了一个名为ContactDB
的数据库,并对其进行了一系列配置。接下来,需要创建一个名为Contacts
的表,并定义了一个存储过程GetContactList
来检索联系人列表。
现在可以使用以下命令来生成实体:
dotnet ef dbcontext scaffold -c ContactDbContext -o Models -f "Data Source=yourdatasource; Initial Catalog=ContactDB;User ID=youruserid;Password=yourpassword" Microsoft.EntityFrameworkCore.SqlServer
执行上述命令后,将在数据访问层项目中创建一个名为Models
的文件夹,其中包含数据库实体。
打开ContactDbContext.cs
文件,将看到在上述命令中指定的SQL连接字符串以及相关的联系人实体。
在业务层项目中添加数据访问引用,并在Web项目中添加业务层引用。
创建一个扩展类,用于将数据库对象映射到实体框架实体。
在业务层类库中创建一个名为IContactRepository.cs
的接口。