entity framework core在独立类库下执行迁移操作

简介: entity framework core在独立类库下执行迁移操作

之前学习EFCore的时候,都是在VS创建的默认模板里面进行的,按照官方文档,直接就可以搞定。

今天新项目准备上.Net Core,打算先按照国际惯例,进行分层,数据访问层是用EFCore来做,于是就单独把这层放到一个类库里面

1.添加引用

第二个和第三个库是必须要添加的,如果你不用命令迁移除外。。。。。

2.打开程序包管理控制台

Add-Migration intidb

然后就会发现报错了

No database provider has been configured for this DbContext. A provider can be configured by overriding the DbContext.OnConfiguring method or by using AddDbContext on the application service provider. If AddDbContext is used, then also ensure that your DbContext type accepts a DbContextOptions<TContext> object in its constructor and passes it to the base constructor for DbContext.

大致意思就是找不到数据库连接,因为按照正常情况下,我们的数据库连接会在StartupConfigureServices里面读取,但是独立的类库执行命令的时候,是不会执行到Startup命令的。

找到原因就好办了,重写一下DbContextOnConfiguring方法

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(
                "Data Source=.;Initial Catalog=dbname;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=123456");
        }

然后重新执行

Add-Migration intidb

然后执行

Update-Database -Verbose

打开数据库就能看到EFCore自动生成的数据库了



目录
相关文章
|
24天前
|
缓存 Java 数据库连接
《使用 Hibernate 进行 ORM 映射:简化 Java Web 开发的数据库操作》
【4月更文挑战第4天】Hibernate是Java Web开发中的ORM工具,通过将数据库表映射为Java对象简化数据库操作。它减少对SQL和底层数据库的依赖,自动化连接管理,提供缓存机制提升性能。Hibernate的优势包括直观的对象关系映射、透明持久化、灵活查询和关联关系管理。遵循合理设计映射、缓存使用、配置优化及性能测试的最佳实践,可提升开发效率和系统性能。
|
存储 SQL 数据库
Entity Framework Core 捕获数据库变动
Entity Framework Core 捕获数据库变动
155 0
|
运维 安全 数据库
Entity Framework 并发冲突解决方案(下)
Entity Framework 并发冲突解决方案
139 0
|
数据库
Entity Framework 并发冲突解决方案(上)
Entity Framework 并发冲突解决方案
158 0
Entity Framework 并发冲突解决方案(上)
|
数据库
Entity Framework 迁移
Entity Framework 迁移
98 0
|
数据库 容器
.NET Core2.1下采用EFCore比较原生IOC、AspectCore、AutoFac之间的性能
一、前言  ASP.NET Core本身已经集成了一个轻量级的IOC容器,开发者只需要定义好接口后,在Startup.cs的ConfigureServices方法里使用对应生命周期的绑定方法即可,常见方法如下 services.
2684 0
|
程序员 数据库 关系型数据库