目录

介绍

先决条件

在Visual Studio 2019中创建新的ASP.NET Core Web API项目

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

创建API控制器

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

摘要


介绍

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

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

参考:https://www.devart.com/entitydeveloper/

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

先决条件

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

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

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

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

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

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

在Visual Studio 2019中创建新的ASP.NET Core Web API项目

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

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

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

在本节中,我们将探索如何使用Entity Developer创建实体数据模型。要在Visual Studio 2019中使用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的ADO.NET实体数据模型已创建。实体数据模型如下所示:

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帮助您提高开发人员的工作效率——它支持使用ADO.NET Entity Framework,Entity Framework Core,Hibernate,LinqConnect,Telerik Data Access和LINQ to SQL。Entity Developer也内置于Devart ADO.NET数据提供程序中——这是链接:https://www.devart.com/dotconnect/。

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

使用Entity Developer构建ASP.NET Core Web API应用程序相关推荐

  1. 加速ASP.NET Core WEB API应用程序。 第三部分

    深度重构和完善ASP.NET Core WEB API应用程序代码 (Deep refactoring and refinement of ASP.NET Core WEB API applicati ...

  2. 在docker中运行ASP.NET Core Web API应用程序

    本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过程中,也会对docker的使用进行一些简单的描述.对于.NET Cor ...

  3. 加速ASP.NET Core WEB API应用程序——第2部分

    目录 应用程序生产力 异步设计模式 数据规范化与SQL查询效率 NCHAR与NVARCHAR 使用MSSQL服务器的全文引擎 存储过程 优化存储过程 预编译和重用存储过程执行计划 使用Entity F ...

  4. Docker容器环境下ASP.NET Core Web API应用程序的调试

    本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Docker容器环境下,对ASP.NET Core Web API应用程序进行调试.在 ...

  5. 加速ASP.NET Core WEB API应用程序——第1部分

    目录 介绍 创建测试RESTful WEB API服务 应用程序架构 数据库 创建ASP.NET核心WEB API应用程序 使用实体框架核心进行数据库访问 异步设计模式 存储库 存储库实现 服务 服务 ...

  6. 使用Entity Framework Core,Swagger和Postman创建ASP.NET Core Web API的分步指南

    目录 介绍 背景 第1步:创建一个新项目 第2步:添加模型类 第3步:使用Entity Framework Core 第4步:添加数据库上下文和控制器 步骤5:在Package Manager控制台中 ...

  7. [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了

    园子里关于ASP.NET Core Web API的教程很多,但大多都是使用EF+Mysql或者EF+MSSQL的文章.甚至关于ASP.NET Core Web API中使用Dapper+Mysql组 ...

  8. 支持多个版本的ASP.NET Core Web API

    基本配置及说明 版本控制有助于及时推出功能,而不会破坏现有系统. 它还可以帮助为选定的客户提供额外的功能. API版本可以通过不同的方式完成,例如在URL中添加版本或通过自定义标头和通过Accept- ...

  9. core webapi缩略图_在ASP.NET Core Web API 项目里无法访问(wwwroot)下的文件

    新建 ASP.NET Core Web API 项目 -- RESTFul 风格 Hello World! 一.创建一个空项目 请查看 新建 .NET Core 项目 -- Hello World!  ...

最新文章

  1. 缓存区溢出检测工具BED
  2. QT udp自动获取对方ip和端口号
  3. 由浅到深讲解C#-LINQ
  4. 变分自编码器系列:VAE + BN = 更好的VAE
  5. Java实现有向图的拓扑排序
  6. PHP 中使用工厂模式
  7. 【leetCode】69. x 的平方根
  8. 原理图学习(点读笔调试)
  9. NOI2022退役记
  10. 班主任工作总结中职计算机网络,中职班主任工作总结(精选5篇)
  11. Python使用for实现无限循环的多种方法
  12. 神经网络学说的主要观点,神经网络宏观解释包括
  13. 试图运行项目时出错:未能加载文件或程序集 或它的某一个依赖项。该模块应包含一个程序集清单 .
  14. 使用PS快速保存多种尺寸的图标
  15. 【C语言训练】自由落体问题
  16. SAP中销售订单计划行类别中请求/装配对物料需求计划的影响测试
  17. 含有js的英文单词_js-组成-dom-常见单词
  18. 手把手带你爬取猫眼电影,正则解析
  19. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java水果生鲜销售系统7826c
  20. Android 恢复出厂设置上层流程

热门文章

  1. wdcp mysql日志文_mysql的日志简单总结
  2. python中如何调用类takes no arguments_关于python中的 take no arguments 的解决方法
  3. mysql server出现_查询各阶段时,一旦mysql server出现各种故障下的表现形式
  4. 设计灵感|海报设计中常见的文字排版样式
  5. 家居海报PSD模板,是否也是你理想的生活!
  6. 设计师交流社区,在集设原创作品通过交流发现问题,不断进步!
  7. 冬季防御抗疫情宣传插画素材,时刻提醒大家注意
  8. Mac 登陆Linux云服务器方法
  9. MyBatis的概述及使用
  10. 云计算:OpenStack、Docker、K8S(Kubernetes容器编排工具)的演进史 | 附推荐阅读