1.新建一个解决方案文件夹 取名Product

2.在Product解决方案文件夹下面创建一个.net core 类库项目 取名Product.Domain,引用项目DDD.Base项目

3.在类库下面新建一个文件夹 取名POCOModels,在这个文件夹下面新建两个partial的类 分别取名ProductSPU和ProductSKU

4.新建一个IProductContext的接口

/// <summary>
/// 上下文接口,之所以创建这个接口是因为,在本例子中会使用EFCore的上下文接口,但是以后也可能用别的接口
/// </summary>
public interface IProductContext
{
}

5新建一个ProductEFCoreContext的类,在这个类中创建两个属性DbSet<ProductSPU> ProductSPU 和 DbSet<ProductSKU> ProductSKU

因为当前项目引用的DDD.Base项目安装了EntityFrameWorkCore.SqlServer 所以当前项目默认带了DbSet

//注意这里继承了DbContext
public class ProductEFCoreContext:DbContext,IProductContext
{
public DbSet<ProductSKU> ProductSKU { get; set; }
public DbSet<ProductSPU> ProductSPU { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Server=localhost;DataBase=DDD1DB;User Id=sa;Password=0");
}
}
//干完上面这个就要就对应的项目生成数据库脚本
//dotnet ef migrations add InitialCreate
//然后
//dotnet ef database update

6.生成数据库,记住要安装两个包EntityFrameWorkCore.SqlServer 和 EntityFrameWorkCore.SqlServer.Tools。此外还要修改一下csproj文件。此处安装EntityFrameWorkCore.SqlServer 我觉得有点像是一个BUG

7.创建一个Models文件夹 在其中新建ProductSPU和ProductSKU 的另外两个Partial 注意命名空间要修改一致。在这两个类中分别创建两个创建当前类的方法。

8.关从上下文生成数据库要注意的 是:生成数据库使用的两行命令,不是在nuget控制台中执行的,而应该是进入类库项目所在文件夹 然后cmd出控制台,在控制台中国使用两行命令生成数据库(先生成迁移脚本,再执行迁移脚本)

9.因为重装系统,安装了新的vs,进行步骤8的时候 有报错如下:

面对这个问题的解决方法是 将csproj里面的信息做如下修改:

执行成功 如下:

再执行脚本 成功如下:

最新文章

  1. yii在TbGridView的td里面加入相应的下拉选项(转)
  2. MyBatis之传入参数parameterType
  3. swift——设置navigationitemtitle的内容以及格颜色
  4. 为进度条增加“伪进度条”?(使用QEventLoop和QTimer)
  5. 学习笔记:HTML+CSS 基础知识
  6. 【java】文件复制的简单实现
  7. UVa230 Borrowers
  8. ●BZOJ 2119 股市的预测
  9. cassandra 如何写数据以及放置副本
  10. 关于openssl的交叉编译
  11. C# 学习之路--百度网盘爬虫设计与实现(一)
  12. 导出pdf功能
  13. vue-cli创建的项目的目录结构及说明
  14. [Win] Win8权限机制导致R安装包失败
  15. hdu1576(扩展欧几里得)
  16. Application failed to start because it could not find or load the QT platform plugin “windows”
  17. Spring+Mybatis整合时 Failed to read candidate component class,Caused by:IllegalArgumentException
  18. 使用loadrunner对https协议(单双向SSL)的web端性能测试 (转)
  19. 转:Uncovering Drupalgeddon 2(cve-2018-7600)漏洞深度解析(附漏洞利用代码地址)
  20. BZOJ1019 汉诺塔

热门文章

  1. 自己定义Dialog的具体步骤(实现自己定义样式一般原理)
  2. [Angular] Learn Angular Multi-Slot Content Projection
  3. 闪回drop恢复表后sql运行计划异常
  4. (七)RabbitMQ消息队列-通过fanout模式将消息推送到多个Queue中
  5. andorid 自己定义SwitchButton
  6. jquery-9 京东和酒仙网左侧导航如何实现
  7. Android shape画圆点
  8. ios开发多选照片实现
  9. php实现求数组中出现次数超过一半的数字(isset($arr[$val]))(取不同数看剩)(排序取中)
  10. Cisco IOS images