一、下载模板
下载地址: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项目。