NuGet安装EF Core

安装 Microsoft.EntityFrameworkCore 包(不要安装 EntityFramework 包)

NuGet安装EF Core对应数据库扩展包

安装途径:先去EF官方文档上(戳这里),找到自己使用的数据库对应的NuGet程序包再进行安装

  • 如果使用 mysql 则安装 Pomelo.EntityFrameworkCore.Mysql 包(不要安装 Mysql.Data.EntityFrameworkCore

  • 如果使用 PostgreSQL 作为底层存储,则安装 Npgsql.EntityFrameworkCore.PostgreSQL 包(不要安装 Npgsql

配置步骤1 – 配置EF Core

  1. 新建 Database 文件夹,存放和EF Core相关配置信息/代码

  2. 创建数据库映射工具:在 Database 文件夹下创建 AppDbContext.cs 文件(上下文关键对象 理解为代码和数据库之间的连接器)

  3. 让AppDbContext继承EF Core中的DbContext

public class AppDbContext : DbContext
  1. 注入 DbContext 的实例
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
{
}
  1. 指明哪些模型需要映射到数据库中:使用 DbSet 进行数据模型映射,每个数据模型都要用一个dbset来映射给数据库表table
public DbSet<TouristRoute> TouristRoutes { get; set; } // TouristRoutes - 数据库名称

配置步骤2 – 配置数据库

  1. AppDbContext 对象注入到系统的 IOC 容器中,在 Startup.cs 中的 ConfigureServices 中。(别忘了在 appsetting.json 文件中配置数据库相关信息)
services.AddDbContext<AppDbContext>(options =>
  options.UseMySql(Configuration.GetConnectionString("mysql_connect"), new MySqlServerVersion(new Version())));
  1. 在 中加入配置函数,并在配置函数中注入服务依赖
        public IConfiguration Configuration { get; } // 创建一个私有变量储存配置信息,没有set是因为一会在下面的构建函数中给它赋值
        
        /// <summary>
        /// 注入配置服务依赖
        /// Startup就可以通过成员变量configuration来访问appsetting.json
        /// </summary>
        /// <param name="configuration"></param>
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

创建对应数据仓库

  1. 新建数据仓库:在 Services 文件夹下创建控制器对应的 xxxRepository.cs 文件

  2. 在 Startup.cs 文件夹中添加注入依赖:services.AddTransient<ITouristRouteRepository, TouristRouteRepository>();

使用EF Core创建数据库及初始化数据

  1. 验证一下数据模型(添加数据库限制、主键信息、外键联系等),判断是否符合数据库创建要求

  2. 安装数据库创建工具 Entity Framework Core Tools,支持三种数据库的创建方式 Database First(先创建数据库,再和数据库连接)、Model First(先创建数据模型 Model ,再根据 Model 自动生成数据库)、Code First(不创建实体模型,通过 dbcontext 创建数据库)

  3. 创建数据库前先 build 构建一下项目

  4. 我们使用 Model First 模式,dontnet 相关命令如下:

dotnet ef migrations add [此次操作名称]
dotnet database update

原文地址:http://www.cnblogs.com/huangkenicole/p/16901870.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性