1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 使用Entity Developer构建ASP.NET Core Web API应用程序

使用Entity Developer构建ASP.NET Core Web API应用程序

时间:2023-12-23 03:53:54

相关推荐

使用Entity Developer构建ASP.NET Core Web API应用程序

目录

介绍

先决条件

在Visual Studio 中创建新的 Core Web API项目

使用Entity Developer创建实体数据模型

创建API控制器

通过实体数据模型读取数据

摘要

介绍

Devart的Entity Developer是一个非常强大的建模和代码生成工具,更精确地说是一个ORM工具。Entity Developer使您可以一目了然地可视化设计数据访问层。由于Devart生成的数据访问层包含自动生成的代码,因此出错的可能性很小。

Entity Developer的官方网站指出:“Entity Developer可以在一个统一的界面中帮助您设计各种.NET ORM的模型。您可以在一个工具中获得对所有ORM的支持,也可以购买单独的版本,并使用其中的一种支持的ORM。”

参考:/entitydeveloper/

Entity Developer支持实体框架,实体框架核心(EF Core),Hibernate,LinqConnect,Telerik数据访问和LINQ to SQL。它使用数据库优先方法,并说明如何与ORM设计器和代码生成工具一起使用。本文讨论了如何与Entity Developer一起在 Core 3.1中构建RESTful服务。

先决条件

为了能够使用本文中演示的代码示例,您应该在系统中安装以下组件:

Visual Studio 社区版SQL Server 开发人员版Entity Developer

您可以从此链接下载.NET Core 3.1。

您可以从此链接下载Visual Studio 。

您可以从此链接下载SQL Server Developer Edition。

您还应该下载并还原AdventureWorks数据库,这是系统中在线事务处理(OLTP)的Microsoft产品示例。您可以从此链接下载系统中的AdventureWorks数据库副本。

在Visual Studio 中创建新的 Core Web API项目

假设您的计算机上已经安装了必要的软件,以便可以与Entity Developer一起使用,请按照下面概述的步骤创建一个新的 Core Web API项目。

首先,打开Visual Studio IDE接下来,在IDE加载后,单击“创建新项目”点击“创建一个新项目”接下来,选择“Core Web应用程序”点击“下一步”按钮指定项目名称和位置——应将其存储在系统中的位置(可选)单击“将解决方案和项目放在同一目录中”复选框。接下来,点击“创建”按钮在接下来显示的“创建新的Core Web应用程序”对话框窗口中,选择“API”作为项目模板。选择 Core 3.1或更高版本。您应该通过禁用相应的复选框来禁用“HTTPS配置”和“启用Docker支持”选项。由于在此示例中将不使用身份验证,因此将身份验证指定为“No Authentication”。最后,单击“创建”按钮以完成该过程。

使用Entity Developer创建实体数据模型

在本节中,我们将探索如何使用Entity Developer创建实体数据模型。要在Visual Studio 中使用Entity Developer创建实体数据模型,请遵循以下概述的步骤:

1、在“解决方案资源管理器”窗口中右键单击项目

2、选择添加->新项目

1

这将启动“Entity Developer:创建模型向导”窗口,如下所示:

2

这是您应该指定应如何创建模型的方式。有两个选项:“数据库优先”(默认情况下处于选中状态)和“模型优先”。在此示例中,我们将利用“数据库优先”方法。

3、单击“下一步”按钮继续。

4、在下一个截图中,指定连接属性,然后单击“下一步”按钮继续。

3

在下一个截图中,您应该指定模型应包含的内容。缺省情况下,“从数据库生成”选项处于选中状态,如下图所示:

4

5、由于我们需要从数据库中创建模型,因此单击“下一步”按钮继续。

在下一个截图中,Entity Developer运行时将检索数据库元数据,这是选择数据库对象的方式。

5

6、取消选择所有选项,然后仅指定要成为模型一部分的数据库对象。为了简单起见,我们仅选择Person和EmailAddress表。

6

7、在“设置命名规则”截图中,您可以为实体指定命名规则。

7

8、由于我们不会在此处进行任何更改,因此请单击“下一步”按钮继续。

接下来显示的截图是“模型属性”,如下图所示:

8

9、将上下文命名空间指定为“AdventureWorksModel”,然后单击“下一步”按钮继续。在下一个截图中,您可以指定模型图应包含的内容。

9

请注意,将显示我们之前选择的两个数据库对象,并且默认情况下会选择“所有实体”单选按钮。

10、由于我们此处将不会进行任何更改,因此请单击“下一步”按钮继续。在下一个截图中,您可以根据需要选择代码生成模板。

10

11、由于这里我们将不做任何修改,因此请单击“下一步”按钮继续。

12、在下一个截图中,单击“下一步”按钮继续。

11

13、单击“完成”以完成该过程。

使用Entity Developer的实体数据模型已创建。实体数据模型如下所示:

12

创建API控制器

到目前为止,一切都很好。现在已经创建了Web API项目和实体数据模型,下一步是创建将用于与实体数据模型进行交互的API控制器。为此,请按照以下概述的步骤操作:

1、在解决方案资源管理器窗口中选择项目

13

2、右键单击并选择添加->控制器

3、在“添加新脚手架项目”窗口中,选择“具有读/写操作的API控制器”作为模板

14

4、点击添加在下一个截图中,指定控制器的名称。让我们将控制器命名为DefaultController。

5、单击添加以创建控制器并将其添加到您的项目中

在下面的部分中,我们将使用此控制器来编写操作方法。

通过实体数据模型读取数据

在本节中,我们将研究如何使用在上一节中创建的实体数据模型从数据库AdventureWorks读取数据。

创建一个使用以下代码命名的IAdvantureWorksRepository接口:

public interface IAdventureWorksRepository{PersonDTO GetPerson(int personId);}

创建一个名为PersonDTO的新类,并在其中添加以下代码:

public class PersonDTO{public string FirstName { get; set; }public string LastName { get; set; }public string EmailAddress { get; set; }}

创建一个内部包含以下内容的AdventureWorksRepository类:

public class AdventureWorksRepository: IAdventureWorksRepository{public PersonDTO GetPersonById(int personId){using(AdventureWorksModel dbContext = newAdventureWorksModel()){var query = from p in dbContext.People join e indbContext.EmailAddresseson p.BusinessEntityID equals e.BusinessEntityIDwhere p.BusinessEntityID == personIdselect new PersonDTO{FirstName= p.FirstName, LastName= p.LastName,EmailAddress = e.EmailAddress1};return query.SingleOrDefault();}}}

AdventureWorksRepository类扩展IAdventureWorksRepository接口并实现GetPersonById方法。该GetPersonById方法返回PersonDTO的实例。

以下代码段显示了如何在Startup类的ConfigureServices方法中添加我们作为范围服务创建的服务AdventureWorksRepository。

public void ConfigureServices(IServiceCollection services){services.AddScoped(typeof(IAdventureWorksRepository),typeof(AdventureWorksRepository));services.AddControllers();}

现在,我们可以利用控制器中的依赖项注入,如下面的代码片段所示:

public class DefaultController : ControllerBase{private readonly IAdventureWorksRepository _adventureWorksRepository;public DefaultController(IAdventureWorksRepository adventureWorksRepository){_adventureWorksRepository = adventureWorksRepository;}//Action methods}

以下代码段显示了如何编写一个操作方法,该方法接受业务实体ID作为参数,然后调用AdventureWorksRepository的GetPersonById方法。

[HttpGet("{id}", Name = "Get")]public string Get(int id){var person = _adventureWorksRepository.GetPerson(id);return JsonConvert.SerializeObject(person);}

下面的代码清单是该DefaultController类的完整代码,供您参考。

[Route("api/[controller]")][ApiController]public class DefaultController : ControllerBase{private readonly IAdventureWorksRepository_adventureWorksRepository;public DefaultController(IAdventureWorksRepositoryadventureWorksRepository){_adventureWorksRepository = adventureWorksRepository;}[HttpGet]public string Get(){return "Demonstrating Entity Developer";}[HttpGet("{id}", Name = "Get")]public string Get(int id){var person = _adventureWorksRepository.GetPersonById(id);return JsonConvert.SerializeObject(person);}}

当您执行应用程序并点击Get(int id)端点时,输出如下:

15

摘要

来自Devart的Entity Developer帮助您提高开发人员的工作效率——它支持使用 Entity Framework,Entity Framework Core,Hibernate,LinqConnect,Telerik Data Access和LINQ to SQL。Entity Developer也内置于Devart 数据提供程序中——这是链接:/dotconnect/。

从以下位置下载试用版后,您可以开始使用Entity Developer:/entitydeveloper/download.html。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。