Entity Framework Core生成数据库表
作者:.NET开发菜鸟 发布时间:2024-01-15 18:09:29
一、引言
生成数据库表有下面的三种方式:
代码生成。
程序包管理器控制台迁移。
命令行迁移。
下面分别介绍上面的三种方法。
二、具体示例
1、代码生成
在程序里面执行下面的代码可以在运行时生成数据库:
dbContext.Database.EnsureCreated()
其中dbContext是数据上下文的实例对象。看下面的代码:
using EFCore.Data;
using System;
namespace EFCore.Con
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
// 实例化数据上下文对象
EFDbContext dbContext = new EFDbContext();
// 生成数据库
bool tfTrue = dbContext.Database.EnsureCreated();
if (tfTrue)
{
Console.WriteLine("数据库创建成功!");
}
else
{
Console.WriteLine("数据库创建失败!");
}
Console.ReadKey();
}
}
}
运行程序,查看效果:
提示创建成功,我们去数据库查看,发现会自动创建数据库,并且添加了表:
这种方式只能执行一次,如果再次执行,就会提示创建数据库失败。
2、程序包管理器控制台迁移
使用程序包管理器控制台迁移的方式分为三个步骤。
1、安装Microsoft.EntityFrameworkCore.Tools包
由于迁移需要使用到Microsoft.EntityFrameworkCore.Tools包,所以先要在EFCore.Data类库项目上安装这个包,直接在NuGet里面安装即可。
这里是把EFCore安装在一个单独的类库项目里,所以作为启动项的控制台程序也要安装这个包。
2、添加迁移命令
使用下面的命令可以生成一个迁移:
Add-Migration Init_First
其中Init_First是为这次迁移起的一个名称,如下图所示:
执行完迁移命令以后,会自动生成几个文件:
20200224163036_Init_First.cs:是针对本次迁移生成的文件。每次迁移都会生成一个对应的迁移文件。里面有一个Up方法和一个Down方法,Up方法表示要执行的操作,Down方法相当于回滚,如果需要还原到上一个状态,就会执行Down方法。
EFDbContextModelSnapshot.cs:生成的配置文件。只会生成一次。
3、更新数据库
执行完上面的迁移命令,执行下面的命令就可以更新到数据库:
Update-Database
如下图所示:
这样就会自动生成数据库。
3、命令行迁移
我们可以在PowerShell或者CMD命令行窗口里面进行迁移,使用命令行迁移分为下面的两个步骤。
1、添加迁移
首先我们要进入EFCore.Data目录下面,然后执行下面的命令添加迁移:
dotnet ef migrations add Initial
如下图所示:
迁移之后同样会生成上面所讲的文件。
2、更新数据库
执行下面的命令会将配置更新到数据库:
dotnet ef database update
如下图所示:
执行成功以后就会生成数据库。
三、总结
上面介绍了三种生成数据库表的方式,代码生成的方式适合于控制台程序,这种方式不太常用。尤其是在Web项目里面,经常使用第二种和第三种方式。
来源:https://www.cnblogs.com/dotnet261010/p/12359767.html


猜你喜欢
- 工欲善其事必先利其器,PyCharm 是最popular的Python开发工具,它提供的功能非常强大,是构建大型项目的理想工具之一,如果能挖
- 本文实例讲述了C# Ado.net读取SQLServer数据库存储过程列表及参数信息的方法。分享给大家供大家参考,具体如下:得到数据库存储过
- 共4个页面:form.asp; chk.asp; num.asp; count.asp,得到一个随即数字。加密解密后成成XBM图片,利用 s
- 今天做visual transformer研究的时候,发现了einops这么个神兵利器,决定大肆安利一波。先看链接:https://gith
- 集成 FCKEditor v2.6(当前为最新版本)的基本步骤如下:1. 下载FCKeditor 2.6 基本文件(Main Code)。将
- 连接服务器菜单栏找到【工具/Tools】->【Deployment/部署】->【Confinguration…/配置…】。点加号
- 我们都知道,Numpy 是 Python 环境下的扩展程序库,支持大量的维度数组和矩阵运算;Pandas 也是 Python 环境下的数据操
- 一、yaml文件介绍yaml是一个专门用来写配置文件的语言。1. yaml文件规则区分大小写;使用缩进表示层级关系;使用空格键缩进,而非Ta
- 现在介绍加速网页图形显示速度的六种方法,为你解决这个难题。其最基本的宗旨就是,让你用买鱼的价钱,品尝到熊掌的美味和营养。 1.首先要确定图像
- django上线后,需要把setting.py文件的debug=True改为False,以防暴露代码报错问题。因为我项目用到css的地方只有
- 前言:本文为 HITwh 网络空间安全专业网络空间安全设计与实践 I 的选题之一,主要实现了远程监控局域网内的主机桌面与网络情况、简单键鼠控
- sql server中变量要先申明后赋值:局部变量用一个@标识,全局变量用两个@(常用的全局变量一般都是已经定义好的);申明局部变量语法:d
- 摘要:本文主要是在pandas中如何对字符串进行切分。我们考虑一下下面的应用场景。这个是我们的数据集(data),可以看到,数据集中某一列(
- 一、简介wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。 w
- 第一种方法import sysimport unicodedatas = "Lǐ Zhōu Wú"remap = { #
- 还有多少耿直boy和我一样在等待微信官方送上一顶圣诞帽?最后知道真相的我眼泪掉下来……(还蒙在鼓里的同学请在微信最上方的搜索栏自行搜索『圣诞
- 下面先来看一个例子:import requestsresult=requests.get("http://data.1
- 一、实现过程本文对经典手写数字数据集进行多分类,损失函数采用交叉熵,激活函数采用ReLU,优化器采用带有动量的mini-batchSGD算法
- 代码很简单,只是给大家一个思路的,这里就不多废话了,奉上源码:<!DOCTYPE html><html><he
- 1、slice 方法 (Array) 返回一个数组的一段。 arrayObj.slice(start, [en