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

目录

介绍

先决条件

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

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

创建API控制器

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

摘要


介绍

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

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

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

Entity Developer支持ADO.NET实体框架,实体框架核心(EF Core)HibernateLinqConnectTelerik数据访问和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、取消选择所有选项,然后仅指定要成为模型一部分的数据库对象。为了简单起见,我们仅选择PersonEmailAddress表。

6

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

7

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

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

8

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

9

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

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

10

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

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

11

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

使用Entity DeveloperADO.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 = new
                  AdventureWorksModel())
            {
                var query = from p in dbContext.People join e in
                dbContext.EmailAddresses
                      on p.BusinessEntityID equals e.BusinessEntityID
                      where p.BusinessEntityID == personId
                            select 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作为参数,然后调用AdventureWorksRepositoryGetPersonById方法。

[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(IAdventureWorksRepository
                             adventureWorksRepository)
    {
        _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

摘要

来自DevartEntity Developer帮助您提高开发人员的工作效率——它支持使用ADO.NET Entity FrameworkEntity Framework CoreHibernateLinqConnectTelerik Data AccessLINQ to SQLEntity Developer也内置于Devart ADO.NET数据提供程序中——这是链接:https://www.devart.com/dotconnect/

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Entity Developer是一个强大的ORM设计器,支持 ADO.NET Entity Framework, NHibernate, LinqConnect 和 LINQ to SQL。你可以使用模型首先和数据首先的方法设计ORM模型并生成C#或者Visual Basic .NET代码。它引入了新的方法设计ORM模型,提高开发效率,简化数据库应用的开发。 可视化ORM模型设计器并支持代码生成 Entity Developer允许你可视化创建和编辑NHibernate,Entity Framework,LinqConnect 和 LINQ to SQL模型,无需一行XML代码。它支持创建各种一映射,如表分割,映射实体到多个表,复杂类型,继承分层,从Sel ect语句创建实体,从SQL代码创建方法等。由于使用了类似T4的模板,所以代码生成非常灵活,另外你还能创建自己的模板用于其他的编程语言。 多ORM支持 Entity Developer 支持 NHibernate, Entity Framework,LinqConnect 和 LINQ to SQL模型。 强大的代码生成 Entity Developer提供基于T4类似的模板生成代码框架,针对不同使用情况提供大量预定义的模板,模板化生成上下文,实体,映射,支持流,属性和XML映射,包括持久层感知和持久层无感知实体,支持验证框架等。另外模板提供自动生成MVC Controller和视图的功能。Data Transfer Object 提供转换器类和Data Annotations metadata类。 适用于各种.NET ORM的可视设计器 Entity Developer可以帮助您在一个统一的界面中为各种.NET ORM设计模型。您可以在一个工具中获得对所有ORM的支持,或者您可以购买单独的版本,与其中一个受支持的ORM一起使用。 支持EntityFramework和EF Core 对于Entity Framework v1-v6以及最新的EF Core2.2,我们的设计器提供了比EDM设计器更多的设计和代码生成功能。 Entity框架核心 设计实体框架核心模型可视化。通过大量设置获得模型优先和数据库优先支持。 NHibernate 直观地编辑NHibernate模型,为NHibernate 3或4生成XML,流畅或Loquacious映射和配置。 LINQ to SQL 直观地设计LINQ to SQL模型。 获得更好的模型优先和数据库优先支持,并轻松将模型更改应用于数据库。 LinqConnect 积极支持Devart的LINQ to SQL兼容ORM以及更多功能,Entity Developer作为其ORM设计器。 Telerik数据访问 可视化设计最新Telerik数据访问版本的模型,并通过Fluent Mapping API生成仅代码映射。 功能丰富的设计器,具有强大的代码生成功能 无缝Visual Studio集成 支持Model-First和Database-First 可视化创建几乎所有类型的映射 将模型更改应用于数据库,反之亦然 强大的模型重构 优化大型模型的工作 设计时LINQ / ESQL / HQL查询执行 查看和编辑源表中的数据 背景模型验证 基于T4模板的代码生成 大量预定义模板 生成C#或VB代码 每个类的文件,部分类生成 自定义属性支持 自定义模板支持 带语法高亮的模板编辑器 高质量的生成代码 高度可定制的一代
### 回答1: ASP.NET Core Web API 是一种用于构建 Web API 的框架。它是微软开发的一个开源框架,旨在提供高性能、可扩展性和可靠性,支持跨平台开发,并且易于使用ASP.NET Core Web API 基于 .NET Core 平台,可以运行在 Windows、Linux 和 macOS 等多个操作系统上。它支持使用 C# 或者其他 .NET 支持的语言进行开发,并且提供了许多开箱即用的功能,如模型绑定、身份验证、授权、路由等等。 使用 ASP.NET Core Web API,你可以构建 RESTful API,支持多种数据格式,如 JSON、XML 等等。你还可以轻松地集成其他框架和工具,如 Swagger、Entity Framework Core、SignalR 等等。 总之,ASP.NET Core Web API 是一个功能强大、灵活、易于使用的框架,非常适合构建 Web API。 ### 回答2: ASP.NET Core Web API 是微软推出的一种服务器端的轻量级框架,用于构建基于 RESTful 的 Web API。该框架建立在 .NET Core 上,并具有很好的可扩展性和灵活性,可适用于跨平台开发。 ASP.NET Core Web API 的主要特点包括: 1. 开箱即用的依赖注入:该框架提供了一个内置的依赖注入容器,使得 DI 可以轻松地集成到 Web API 的开发中。 2. 轻量级:由于底层是使用 .NET Core 构建的,因此 ASP.NET Core Web API 框架非常灵活、快速、轻量级,并且能够满足高并发访问的需求。 3. 跨平台支持:ASP.NET Core Web API 是跨平台的,可以运行在 Windows、Linux 和 macOS 等操作系统上。 4. 开放式标准:该框架遵循开放式的标准,并支持多种数据格式、服务器框架和插件。 5. 网络安全:ASP.NET Core Web API 提供了多种安全功能,包括认证、授权和加密等,以保护 Web 应用程序免受网络攻击。 总之,ASP.NET Core Web API 框架是一个方便、快捷、灵活和高性能的框架,适用于构建任何规模的 Web API 应用程序。与此同时,该框架还提供了良好的文档和社区支持,愿意学习的开发者可以通过微软的官方文档和各种社区论坛,快速上手并掌握该框架的使用。 ### 回答3: ASP.NET Core Web API是一个开放源代码跨平台的Web框架,用于开发基于HTTP协议的RESTful服务,并支持各种客户端,包括Web界面及流行语言开发的客户端应用程序。其已经成为目前.NET生态系统中最重要的发展方向之一。 相比于传统的.NET框架,ASP.NET Core Web API具有以下几个优点: 1. 跨平台:在Linux、Mac、Windows等平台上都可以运行,且不必担心所使用的系统版本问题; 2. 高性能:ASP.NET Core Web API在响应请求方面有极佳的性能,对于高并发访问的场景有着不错的表现; 3. 轻量级:ASP.NET Core Web API具有比传统的.NET框架更轻量级的特点,其运行时占用的硬盘空间和内存资源更少; 4. 便于部署:用Docker等虚拟化容器将应用打包后部署非常简单,不需要过多的配置,适用于现代化的云端应用场景。 在开发方面,ASP.NET Core Web API提供了丰富的工具和库,使Web API的开发效率更高,且可用于多种类型的Web应用程序,例如单页应用程序、移动客户端、大型企业软件等。通过使用ASP.NET Core Web API,开发人员可以轻松创建高效稳定的Web服务和RESTful APIs。 总之,ASP.NET Core Web API是一个反应迅速、易于扩展的开发框架,不仅能够加速Web应用程序的开发工作,更能够提供高性能的Web服务,从而大大提升用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值