NetCore2.0下使用EF CodeFirst创建数据库

本文所使用的VS版本:VS2017 15.3.0

首先新建一个.net core项目  取名NetCoreTask

使用模型视图控制器方式

新建Model层

在Model层下新建一个user实体类 

1 namespace XX.Model
2 {
3     public class tb_User
4     {
5         public string ID { get; set; }
6         public string UserName { get; set; }
7         public DateTime CreateTime { get; set; }
8     }
9 }

新建一个Service层 在下面新建一个dbContext类  

 1 namespace XX.Service
 2 {
 3     public class XDbContext : DbContext
 4     {
 5         public XDbContext(DbContextOptions<XDbContext> options) : base(options)
 6         {
 7
 8         }
 9         public DbSet<tb_User> UserExtend { get; set; }
10         protected override void OnModelCreating(ModelBuilder modelBuilder)
11         {
12             base.OnModelCreating(modelBuilder);
13         }
14     }
15 }

在Web项目下的appsettings.json文件中添加数据库连接字符串,添加后如下:  

 1 {
 2   "ConnectionStrings": {
 3     "XConnection": "Server=127.0.0.1;Database=XCoreDb;User ID=sa;Password=123456"
 4   },
 5   "Logging": {
 6     "IncludeScopes": false,
 7     "LogLevel": {
 8       "Default": "Warning"
 9     }
10   }
11 }

接下来修改 Web项目下的Startup中的ConfigureServices方法,修改后如下:

1 public void ConfigureServices(IServiceCollection services)
2         {
3             services.AddDbContext<XDbContext>(options =>
4                 options.UseSqlServer(Configuration.GetConnectionString("XConnection")));
5             services.AddMvc();
6         }

配置工作已经完成,接下来我们使用控制台命令生成数据库  FirstMigration这个名字是随便起的(定位在Service项目下)

PM> Add-Migration FirstMigration

果不其然报错了

这是因为我们的Web项目和Service没有什么关系,添加Web项目对Service项目的引用后继续

成功了!

我们发现Service项目下多了一个文件夹

但是我们发现在Designer.cs这个文件中有一个错误

这是因为我们没有添加 Microsoft.EntityFrameworkCore.SqlServer 这个引用

添加后,继续执行Update-Database -Verbose 命令

1 PM>  Update-Database -Verbose

出现这个就是成功了。

数据库创建成功!

最后的项目结构图:

原文:http://www.cnblogs.com/xx2oo8/p/7660352.html

原文地址:https://www.cnblogs.com/LiZhongZhongY/p/10778221.html

时间: 2024-12-13 11:54:40

NetCore2.0下使用EF CodeFirst创建数据库的相关文章

使用CodeFirst创建数据库

CodeFirst的意思是根据EF实体类创建对应的数据结构,创建过程由DotNet框架自己完成,程序员可以部分干涉. 1.CodeFirst数据库策略 CreateDatabaseIfNotExists:默认的策略:如果数据库不存在,那么就创建数据库.但是如果数据库存在了,而且实体发生了变化,就会出现异常. DropCreateDatabaseIfModelChanges:此策略表明:如果模型变化了,数据库就会被重新创建,原来的数据库被删除掉了. DropCreateDatabaseAlways

EF框架之CodeFirst创建数据库

CodeFirst是Entity Framework4.1后新增的一种生成模式,在这种方式下,你不需要在DBMS中创建数据库,也无需在VS中画实体模型了,你要做的仅仅是写写代码即可由ORM框架自动创建模型和数据库,非常的方便和简单(由于开发人员只是编写代码,不关心数据库的具体结构,因此也有人把这种方式叫做CodeOnly的). 下面就以一个简单的例子演示一下如何使用CodeFirst生成数据库. 一.新建一个项目并添加必要的引用. 二.编写代码. 1在项目中添加两个实体类和一个数据上下文类如下图

C# 之 EF CodeFirst创建MySQL数据库

MySQL安装好了,今天跟大家交流一下怎么利用EntityFramework的CodeFirst在MySQL数据库中创建数据库 目标框架:.NET Framework 4 第一步:新建一个项目,然后添加如下的引用,这些引用可以在NuGet中添加,也可以到官网中下载然后添加 第二步:在配置文件中添加数据库节点配置 <span style="font-family:Arial;font-size:10px;"><?xml version="1.0"?&

EF Codefirst生成数据库的三种方式

1.写在前头 不是什么高大上的东西,也不是完全原创的,大多是自己学习时去网上查的各种资料.只是发现学东西还是要写点东西,不然前边写着后边忘了,花的时间都浪费了,写写增加记忆吧.如果是有人刚开始学看到这个相信会有帮助的. 2.开搞 前几天写了篇小文章搞了下EF生成数据库时获取连接字符串的方式,发布时不小心勾选了发布到首页,秒秒钟就被管理员给撤销了( ⊙ o ⊙ ),确实太低端了,博客园锅锅撤销也是可以理解的,废话不多说,今天继续搞一搞获取完连接字符串后EF怎么生成数据库呢,有哪些方式呢? 第一种:

.net core2.0 codefirst 创建数据库的问题!

appsettings.json和Startup.cs就不记录了,网上很多!! 1.必须在有DbContext类的项目里添加这3个NuGet引用 Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Tools Microsoft.VisualStudio.Web.CodeGeneration.Design 2.生成Migrations 工具->NuGet管理包->NuGet命令行    然后执行 PM>

ASP.NET MVC: EF 没有创建数据库表

设定连接字符串时,Name属性的值,应该等于创建的EF数据库类类名 比如: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; using MVC_example.Models; namespace MVC_example.DataAccessLayer { public class Cnn : DbContext { priv

EF CodeFirst 更新数据库时报错

今天在博客中看到有网友在更新数据库执行Update-Database时出现下面的错误: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: SQL Network Interfaces, error: 26 - 定位指定的服务器/实例时出错) . 解决办法,强制更新数据库: Update-Database -ConnectionStringName "My

SQL server身份验证模式下登入,创建数据库报错:“master”拒绝了CREATE DATABASE权限问题

第一步:用window模式登录: 2: 3: 4:

EF CodeFirst 如何通过配置自动创建数据库&lt;当模型改变时&gt;

最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    本篇为进阶篇,也是弥补自己之前没搞明白的地方,惭愧惭愧. 如有不明白,请参考:EF CodeFirst 创建数据库 及 EF CodeFirst增删改查之'CRUD' 话不多说,直接上代码: using System; using System.Collections.Generic; using System.Linq; using System