Razor Pages-搭建三层架构创建可重复使用的数据访问项目
admin
2022-01-10Razor Pages-搭建三层架构创建可重复使用的数据访问项目
导航:
在本视频中,我们将讨论如何创建可重用的数据访问类库项目。然后可以将该项目与 Razor Pages的Web应用程序,Windows应用程序,Web API等重复使用。它可以跨平台工作。
创建.Net标准类库项目
在解决方案资源管理器中,右键单击解决方案,然后选择“ 添加”>“新建项目”
项目的名称。由于该项目将包含数据访问服务,因此将其命名为YoYoMooc.StudentManagement.Services
,最终创建一个独立的类库。
添加项目引用
我们现在需要创建他们的引用关联关系,添加的类库项目(YoYoMooc.StudentManagement.Services
)需要使用(YoYoMooc.StudentManagement.Models
)类库中定义的类型(MajorEnum
)。因此,我们需要将YoYoMooc.StudentManagement.Models类库,引用到YoYoMooc.StudentManagement.Services
中。
以下是步骤。
右键单击YoYoMooc.StudentManagement.Services
项目,然后选择“ 添加”>“引用”。
在“引用管理器”窗口中,单击“ 项目”选项卡。从列表中选择YoYoMooc.StudentManagement.Models
项目,然后单击“确定”。
在解决方案资源管理器中,您将看到YoYoMooc.StudentManagement.Models
项目列为项目依赖项
。
在项目文件(YoYoMooc.StudentManagement.Services.csproj
)中,您将看到YoYoMooc.StudentManagement.Models
作为项目参考。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\YoYoMooc.StudentManagement.Models\YoYoMooc.StudentManagement.Models.csproj" />
</ItemGroup>
</Project>
IStudentRepository 接口
我们将使用以下IStudentRepository
接口进行数据访问。这个接口允许我们使用依赖注入。如果您不熟悉依赖项注入的概念,请查阅ASP.NET Core MVC教程的第19部分,该教程适用于初学者。
using YoYoMooc.StudentManagement.Models;
using System.Collections.Generic;
namespace YoYoMooc.StudentManagement.Services
{
public interface IStudentRepository
{
IEnumerable<Student> GetAllStudents();
}
}
MockStudentRepository 类库
目前,我们已在应用程序代码中对学生数据进行了硬编码。我们将在即将到来的视频中讨论如何从MySql 数据库查询学生数据。
using YoYoMooc.StudentManagement.Models;
using System.Collections.Generic;
namespace YoYoMooc.StudentManagement.Services
{
public class MockStudentRepository : IStudentRepository
{
private List<Student> _studentList;
public MockStudentRepository()
{
_studentList = new List<Student>()
{
new Student() { Id = 1, Name = "张三", Major = MajorEnum.ComputerScience, Email = "Tony-zhang@52abp.com" },
new Student() { Id = 2, Name = "李四", Major = MajorEnum.ElectronicCommerce, Email = "lisi@52abp.com" },
new Student() { Id = 3, Name = "王二麻子", Major = MajorEnum.Mathematics, Email = "wang@52abp.com" },
};
}
public IEnumerable<Student> GetAllStudents()
{
return _studentList;
}
}
}