tnblog
首页
视频
资源
登录

ABP 视图生成

4234人阅读 2021/8/31 18:25 总访问:1593174 评论:0 收藏:0 手机
分类: ABP

一.先在数据库生成一个视图,如下:


二.在ABP程序的Core层创建与数据库里视图所对应的实体如下:

三.
在ABP程序的EntityFrameworkCore层下的EntityFrameworkCore文件夹下的seed文件找到xxxDbContext.cs文件,然后在该文件下添加和视图实体相对于的DbQuery<>,如下:


注意:生成视图不用在控制台进行操作

四.在ABP程序的Core层创建一个接口用来写SQL语句的公共方法(相当于方法的具体框架),如下:

代码:

  1. public interface ISqlExecuter2
  2.     {
  3.         /// <summary>
  4.         /// 执行给定的命令
  5.         /// </summary>
  6.         /// <param name="sql">命令字符串</param>
  7.         /// <param name="parameters">要应用于命令字符串的参数</param>
  8.         /// <returns>执行命令后由数据库返回的结果</returns>
  9.         int Execute(string sql, params object[] parameters);
  10.  
  11.         /// <summary>
  12.         /// 创建一个原始 SQL 查询,该查询将返回给定泛型类型的元素。
  13.         /// </summary>
  14.         /// <typeparam name="T">查询所返回对象的类型</typeparam>
  15.         /// <param name="sql">SQL 查询字符串</param>
  16.         /// <param name="parameters">要应用于 SQL 查询字符串的参数</param>
  17.         /// <returns></returns>
  18.         IQueryable<T> SqlQuery<T>(string sql, params object[] parameters) where T : class;
  19. }

五.在ABP程序的EntityFrameworkCore(基础设施层)层下的EntityFrameworkCore文件夹下的Repositories文件里去实现SQL语句的具体方法,如下:

代码:

  1. public class SqlExecuter2 : ISqlExecuterITransientDependency
  2.     {
  3.         private readonly IDbContextProvider<TrainingProjectDbContext> _dbContextProvider;
  4.         //依赖注入
  5.         public SqlExecuter2(IDbContextProvider<TrainingProjectDbContext> dbContextProvider)
  6.         {
  7.             _dbContextProvider = dbContextProvider;
  8.         }
  9.         /// <summary>
  10.         /// 执行给定的命令
  11.         /// </summary>
  12.         /// <param name="sql">命令字符串</param>
  13.         /// <param name="parameters">要应用于命令字符串的参数</param>
  14.         /// <returns>执行命令后由数据库返回的结果</returns>
  15.         public int Execute(string sql, params object[] parameters)
  16.         {
  17.             return _dbContextProvider.GetDbContext().Database.ExecuteSqlCommand(sql, parameters);
  18.         }
  19.         /// 创建一个原始 SQL 查询,该查询将返回给定泛型类型的元素。
  20.         public IQueryable<T> SqlQuery<T>(string sql, params object[] parameters) where T : class
  21.         {
  22.             return _dbContextProvider.GetDbContext().Query<T>().FromSql(sql, parameters);
  23.         }
  24.     }

六.在Application层对视图进行仓储操作

6.1 Dto如下

6.2 具体的方法实现

代码:

  1. public class V_studentfun:TrainingProjectAppServiceBase
  2.     {
  3.         private readonly ISqlExecuter2 _SqlISqlExecuter;
  4.         //依赖注入
  5.         public V_studentfun(ISqlExecuter2 SqlISqlExecuter)
  6.         {
  7.             _SqlISqlExecuter = SqlISqlExecuter;
  8.         }
  9.         /// 查询方法
  10.         public List<V_studentOutDto> GetV_studentlist()
  11.         {
  12.             try
  13.             {
  14.                 var s2 = _SqlISqlExecuter.SqlQuery<V_students>("select * from V_students");
  15.                 List<V_studentOutDto> Dtolist = new List<V_studentOutDto>();
  16.                 foreach (var item in s2)
  17.                 {
  18.                     V_studentOutDto Dto = new V_studentOutDto();
  19.                     Dto.Id = item.Id;
  20.                     Dto.Names = item.Names;
  21.                     Dtolist.Add(Dto);
  22.                 }
  23.                 return Dtolist;
  24.             }
  25.             catch (Exception e)
  26.             {
  27.                 throw new UserFriendlyException("错误信息: " + e.Message + " ---> ");
  28.             }
  29.           
  30.         }
  31.  
  32.     }





评价

.netcore3.1 ABP+vue 实战 (一)

ABP前言一个应用程序框架和起点的ASP.NET MVC web应用程序与最佳实践和最流行的工具!(它是这样说的)1.项目的创建创建项...

ABP框架的介绍和基用法

一、什么是ABP框架? ABP框架全称为“ASP.NETBoilerplateProject”,中文翻译为“ASP.NET样板项目”,诞生的主要目的就是...

ABP数据库迁移

让我们来了解数据库迁移吧!还坑了我好久哇!一、首先二、出现程序包后按以下步骤做如果没按照以上步骤做的话你输入的是add...

ABP添加菜单(服务端添加菜单项)

一 首先创建好一个项目二、找到Navigation结尾类,在类中找到SetNavigation方法,按照模板中提供的菜单添加方法添加MenuIte...

ABP 框架之Navicat 误删数据库怎么恢复

前言:hello 大家好 我们又见面了 我是小付今天我tmd手贱 不小心把数据库干没了一言难尽啊,话不多说一起来看看吧。上次我...

ABP框架中用插件生成复选框(神坑)

前言:hello ,各位老铁们 五一收假了 也该收心了 今天和小付一起来看看我遇到的问题吧!今天要说的是用插件生成复选框上次...

EF多种更新方法。EF修改,Entity Framework修改。ABP vnext ef 更新封装

[TOC] 方法1:直接执行更新的sql语句过于简单不说了 方法2:先查询在更新Users result = oapEntities.Users.Where(a =&gt...

ABP tatable插件实现页面跳转查询数据

columnDefs:[ { targets:0, data:&quot;identification&quot;, render:function(data){ //此处是跳转页面连接(根指定...

ABP swagger方法重载

代码:services.AddSwaggerGen(c =&gt; { c.ResolveConflictingActions(apiDescriptions =&gt; apiDescriptions.First()); });

ABP项目下载

下载链接:https://aspnetboilerplate.com/Templates版本视情况而定1.2.

ABP Xml为Swagger接口页添加详细注释

我们选中我们Application层的项目,右键“属性”,勾选为Xml生成文档,如下图所示。在你的 项目名.Web.Host 的startup目录...

ABP 控制台的基本操作

Update-Database -Migration:0 (删除表结构,受用于数据库,它把数据库的表结构删了)drop-database(数据库删除)Remove-...

ABP 自动映射 AutoMapper

转载:https://www.cnblogs.com/sugarwxx/p/13298800.html自动映射有如下几种:AutoMap,AutoMapFrom和AutoMapTo1.AutoMap...

ABP 多租户数据共享

转载于:https://www.cnblogs.com/Martincheng/p/10185430.htmlABP开启多租户,实体继承了IMayHaveTenant或者IMustHaveTena...
没有个性,不需要签名
排名
4
文章
473
粉丝
3
评论
2
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术