tnblog
首页
视频
资源
登录

Abp 级联查询和级联删除

7699人阅读 2022/3/30 17:27 总访问:1595710 评论:0 收藏:0 手机
分类: ABP

Abp级联查询,主要要设置主子表的外键关系。

  1. [Table("School")]
  2.     public class School : Entity<int>
  3.     {
  4.         public string Name { get; set; }
  5.         public virtual List<Student> Students { get; set; } 
  6.     }
  7.     [Table("Student")]
  8.     public class Student : Entity<int>
  9.     {
  10.         [Required]
  11.         public virtual School School { get; set; }
  12.         public string Name { get; set; }
  13.     }

例如School和Student实体。在子表Student的School属性上添加[Required]标识。这样我们生成的Migration文件,就会自动生成外键和级联删除的关系。

这种要注意,软删除时,不会触发级联删除。所以我们的Model不要继承ISoftDelete接口。

查询时,要注意使用GetAllIncluding方法。

  1. public List<School> GetAllSchool()
  2.         {           return _schoolRepository.GetAllIncluding(s=>s.Students).ToList();
  3.         }

但是abp只提供了GetAll时的GetAllIncluding方法,通过Id查询单个对象时,没有。我们可以在仓储的实现中自己实现。

  1. public class SchoolRepository : PHMESRepositoryBase<School>, ISchoolRepository
  2.     {
  3.         IDbContextProvider<PHMESDbContext> _dbContext;
  4.         public SchoolRepository(IDbContextProvider<PHMESDbContext> dbContextProvider) : base(dbContextProvider)
  5.         {
  6.             _dbContext = dbContextProvider;
  7.       
  8.         }
  9.  
  10.         public List<School> GetAllSchool()
  11.         {
  12.            var list= _dbContext.GetDbContext().school.Include(p=>p.Students).ToList();
  13.             return list;
  14.         }
  15.         public School GetSchool(int id)
  16.         {
  17.            return _dbContext.GetDbContext().school.Where(p => p.Id == id).Include(p=>p.Students).First() ;
  18.         }
  19.     }

级联删除,就直接通过Id删除主表,子表也会自动删除。

  1.  public void DeleteSchool(int id)
  2.         {            var a = _schoolRepository.Get(id);
  3.             _schoolRepository.Delete(a);
  4.         }


原文地址:https://www.cnblogs.com/czly/p/13267072.html

评价

.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 视图生成

一.先在数据库生成一个视图,如下:二.在ABP程序的Core层创建与数据库里视图所对应的实体如下:三.在ABP程序的EntityFrame...

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
欢迎加群交流技术