1.创建领域基础类库项目 取名DDD.DomainBase 放置于基础设施层
2.新建IEntity接口,内部创建2个属性 code和Id用于限定
public interface IEntity { //业务标识符 string Code { get; set; } //存数据到数据库里面时候的技术标识符 Guid Id { get; set; } }
3.新建IAggregationRoot接口 这个接口继承IEntity接口
public interface IAggregationRoot:IEntity { }
4.新建IValueObject接口,这个接口带一个Id属性,如果实体引用这个值对象就使用Id属性,如果直接把值对象写入实体就不用Id属性
public interface IValueObject { Guid Id { get; set; } }
5.创建工作单元接口,带Commit方法,并让这个接口继承IDisposeable接口
public interface IUnitOfWork { void Commit(); }
6.创建IRepository接口,这个接口继承IUnitOfWork接口
public interface IRepository:IUnitOfWork,IDisposable { }
7.创建EFCoreRepository类对象,实现IRepository接口
public class EFCoreRepository : IRepository { private readonly DbContext dbContext; public EFCoreRepository(DbContext context) { this.dbContext = context; } public void Commit() { try { dbContext.SaveChanges(); } catch (Exception ex) { throw ex; } } public void Dispose() { dbContext.Dispose(); } }
8.创建这个类对象的时候里面要用到DbContext,这时要在项目中安装Microsoft.EntityFrameworkCore.Sqlservse包