EF Core DBFirst和CodeFirst 模式使用方法
一、安装依赖包
1.Microsoft.EntityFrameworkCore
2.Microsoft.EntityFrameworkCore.Tools
3.Microsoft.EntityFrameworkCore.SqlServer
二、模式选择
DBFirst 模式
1.新建数据库脚本并执行
2.打开程序包管理控制台生成DbContext上下文以及实体Model
scaffold-dbcontext "server=.;database=dbfirst;uid=sa;pwd=123456;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
3.配置Startup 类注册DbContext上下文
services.AddDbContext<CodeFirstContext>(options =>
{
options.UseSqlServer(Configuration.GetConnectionString("ConStr"));
});
4.配置appsettings.json文件
"ConnectionStrings": {
"ConStr": "Server=localhost;Database=CodeFirst;Uid=sa;Pwd=Dennis374627149;"
}
5.Controller中依赖注入就可以使用了
private readonly DbContextOptions<CodeFirstContext> _context;
public WeatherForecastController(ILogger<WeatherForecastController> logger, DbContextOptions<CodeFirstContext> context)
{
_logger = logger;
_context = context;
}
using (var context = new CodeFirstContext(_context))
{
var model = context.UserEntities.FirstOrDefault(p => p.UserId.Equals("14"));
if (model != null) return model.UpdateTime.ToString();
return "";
}
Code First 模式
1.新建实体类Model
[Table("Users")]
public class UserEntity
{
[Key]
[Required]
[StringLength(32)]
public string UserId { get; set; }
[Required]
[StringLength(20)]
public string Name { get; set; }
[StringLength(20)]
public int Age { get; set; }
[StringLength(11)]
public string Tel { get; set; }
[StringLength(11)]
public DateTime Birthday { get; set; }
[Required]
public DateTime CreateTime { get; set; }
[Required]
public DateTime UpdateTime { get; set; } = DateTime.Now;
}
2.新建DbContext上下文类,继承DbContext
public class CodeFirstContext:DbContext
{
public CodeFirstContext()
{
}
public CodeFirstContext(DbContextOptions<CodeFirstContext> options) : base(options)
{
}
public DbSet<UserEntity> UserEntities { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
}
}
3.Startup注入和appsettting.json文件同上
4.打开程序包控制台(CodeFirstTest 自定义名称,如提示To undo this action, use Remove-Migration 代表初始化成功)
Add-Migration CodeFirstTest
5.继续(更新最后一次迁移)
update-database
6.迁移完成

EF Core DBFirst和CodeFirst 模式使用方法的更多相关文章
- C# 嵌入dll 动软代码生成器基础使用 系统缓存全解析 .NET开发中的事务处理大比拼 C#之数据类型学习 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持 基于EF Core的Code First模式的DotNetCore快速开发框架 【懒人有道】在asp.net core中实现程序集注入
C# 嵌入dll 在很多时候我们在生成C#exe文件时,如果在工程里调用了dll文件时,那么如果不加以处理的话在生成的exe文件运行时需要连同这个dll一起转移,相比于一个单独干净的exe,这种形 ...
- 基于EF Core的Code First模式的DotNetCore快速开发框架
前言 最近接了几个小单子,因为是小单子,项目规模都比较小,业务相对来说,也比较简单.所以在选择架构的时候,考虑到效率方面的因素,就采取了asp.net+entity framework中的code f ...
- 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持
前言 距离上一篇文章<基于EF Core的Code First模式的DotNetCore快速开发框架>已过去大半个年头,时光荏苒,岁月如梭...比较尴尬的是,在这大半个年头里,除了日常带娃 ...
- EF Core 的 Code First 模式
0 前言 本文正文第一节,会对 Code First 进行基本的介绍,以及对相关名词进行说明,读者一开始可以不用在这里消耗过多时间,可以先操作一遍例子,再回过头理解. 第二节,以一个简单的例子,展示 ...
- 第一节:EF Core简介和CodeFirst和DBFirst两种映射模式(以SQLite和SQLServer为例)
一. EF简介 1. 定义 Entity Framework (EF) Core 是轻量化.可扩展.开源和跨平台的数据访问技术,它还是一种对象关系映射器(ORM),它使.NET 开发人员能够使用面向对 ...
- 【原创】EntityFramework Core 中使用 CodeFirst 模式时 PowerShell 版本问题及解决
一.描述: 在使用 Entity Framework Core 时,使用 CodeFirst 模式, 在 VS 中的 PMC(nuget 包管理 控制台) 控制台界面使用如下命令: Install-P ...
- .ef core 多对对关系的关联方法
最近在用.net core 重构博客,在使用ef core连表查询时,遇到了一些问题.记录一下. 关系:一个博客可以有多个标签,一个标签可以属于多个博客,博客和标签之间存在多对多的关系 下面是实体代码 ...
- EF core Code First 简单的使用方法
好吧,我又回来了,其实一直都想写一篇关于EF core 的文章去记录自己在开发时候遇到的问题. 为什么要使用EF框架呢,因为原始的ADO.NET需要编写大量的数据访问代码,所以使用EF会更方便.但是今 ...
- MySql 使用 EF Core 2.0 CodeFirst、DbFirst、数据库迁移(Migration)介绍及示例
dotnet core 2.0 发布已经好几天了,期间也把原来 dotnet core 1.1 的 MVC 项目升级到了 2.0,升级过程还是比较顺利的,变动也不是太多.升级的过程中也少不了 Enti ...
- EF Core 初始化数据库的两种方法。
使用DbContextSeed初始化数据库 添加链接字符串 // This method gets called by the runtime. Use this method to add serv ...
随机推荐
- CSP 记
csp 开考建好文件夹编译器不能用搞了半天换了台电脑 四道题看完一个小时过去了 第一题不会正解写了部分分还有点悬 第二题写暴力因为一个小错误调了半天 看时间不多了已经有点慌了 也没想正解直接开了下一题 ...
- 4.1:简单python爬虫
简单python爬虫 在创建的python文件中输入下列代码: # coding:utf-8 import requests from bs4 import BeautifulSoup def spi ...
- vue项目中配置scss
之前创建 vue 项目的时候没有选择 scss 预编译,现在项目中要使用,不知道如何配置,网上搜了下全都是: npm install sass-loader --save-devnpm instal ...
- 软件工程大作业——“你帮我助”软件开发v2.0
项目简介 在疫情管控期间,很多物资由于信息不对称,不能达成资源的有效分配,尽管这样的事件已经基本不会在新冠疫情的场景中出现,但是开发出一个物品交换的公开信息平台在任何一个社区中都是有必要的,这是构建完 ...
- java中的instanceof方法
本文主要讲述java中的instanceof()方法. 示例代码如下: public class InstanceTest { public static void main(String[] arg ...
- Jmeter 之随机控制器与随机顺序控制器
一.随机控制器 随机控制器相当于python 中的 random.choice(),随机选取其中的一个取样器(业务执行) 实例中随机运行了其中的一个请求 二.随机顺序控制器 随机顺序控制器相当于pyt ...
- JavaScript:箭头函数:省略写法
之所以把箭头函数拎出来,是因为它不仅仅是声明函数的一种方式,它还是函数式编程的重要根基,它使得函数的使用更加的灵活,同时,它的语法,也相对于function声明的函数更加灵活和复杂. 箭头函数的省略写 ...
- python的grpc环境安装
环境 ubuntu:bionic的docker image docker run -it ubuntu:bionic python的grpc环境安装 参考grpc官网:https://grpc.io/ ...
- day10-功能实现09
家居网购项目实现09 以下皆为部分代码,详见 https://github.com/liyuelian/furniture_mall.git 21.功能20-修改购物车 21.1需求分析/图解 进入购 ...
- 【译】2022 年回顾:Web 性能有哪些新变化?
原文地址:https://www.debugbear.com/blog/2022-in-web-performance 若对文中提到的一些性能参数不太熟悉,可以参考我之前的一篇博文<性能参数和优 ...