c#--ABP学习文档 --- 创建Entity和数据库表

一、下载模板

下载地址:https://aspnetboilerplate.com/Templates

打开解决方案,右键还原nuget包,重新打开解决方案。

方法一:设置web为启动项,打开web.config修改数据库连接字符串,程序包管理控制台选择以EntityFramework结尾的项目,并执行Update-Database,以创建数据库。点击运行。

(若是之前的项目报错:数据库连接错误,可以尝试修改EntityFrameworkCore文件下的DbContextFactory.cs中的DbContextConfigurer.Configure配置,修改sql连接为自己的连接路径。如:DbContextConfigurer.Configure(builder, "Server=.;Database=DBOne;User Id=sa;Password=password;connect timeout=120;");)

方法二:在migrator项目中的appsettings.json修改连接sql字符串的IP地址,右键debug运行。

点击运行。

二、文档结构

Presentation

View model (js)View(html/css) location

 

Web

Web api  controller,mvc controller

Web、WebApi展示层

Application

Service,DTOs,DTO Mappers

Application应用服务层

Domain

Entities,value objects,repositories,business class,domain service,unit of work,domain events

Core 领域层

Infrastructure

Orm,db migrations

EntityFramework(基础设施层)

Server side

Dependency injection,logging

 

     领域层即业务层,实现所有的业务规则。

     实体Entity,映射成数据库表。

     仓储Repository,操作数据库进行数据存取。接口定义在领域层,实现在技术设施层。

     领域服务Domain service,当处理的业务跨越多个实体时,要写在领域服务方法内。

     领域事件Domain event,在领域层有些特定情况发生时可以触发领域事件,并在相应的方法中捕获和处理。

    工作单元Unit of work 一种设计模式,用于维护一个由已经被修改(增、删、更新)的业务对象组成的列表,负责协调这些业务对象的持久化工作和并发问题。

三、创建数据库

     1,Core下创建Entity对象Person.cs,继承Entity。

     2,在frameworkcore\entityframeworkcore下的XXDbContext.cs添加代码

public virtual DbSet<Person> PersonEntities { get; set; }

    3,程序包管理控制台PM中执行Add-Migration “name”,生成migration文件

    4,PM中执行update-database

    刷新数据库即可。

四、修改数据库

Web.Host的nuget包管理,升级,添加Microsoft.EntityFrameworkCore.Tools包。

在entity下修改后,在PM中输入Add-Migration “name  ”和 Update-Database

五、数据库插入默认数据值

EntityFrameworkCore\Seed\Host下创建DefaultTestDataTask.cs

private readonly MyAbpProjectDbContext _context;

        private static readonly List<Entity> _tasks;

        public DefaultTestDataTask(MyAbpProjectDbContext context)

        {

            _context = context;

        }

        static DefaultTestDataTask()

        {

            _tasks = new List<Entity>()

            {

                new Task("Learning ABP deom", "Learning how to use abp framework to build a MPA application."),

                new Task("Make Lunch", "Cook 2 dishs")

            };

        }

 

        public void Create()

        {

            foreach (var task in _tasks)

            {

                if (_context.Entity.FirstOrDefault(t => t.Title == task.Title) == null)

                {

                    _context.Entity.Add(task);

                }

                _context.SaveChanges();

            }

        }

上面Entity换成自己要添加的对象

在EntityFrameworkModule文件中的PostInitialize方法里

添加SeedHelper.SeedHostDb(IocManager);

SeedHelper文件中添加:

     public static void SeedHostDb(EmrDbContext context)
        {
           new DefaultTestDataTask(context).Create();
        }

在PM中输入Update-Database,运行web.Host项目。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值