首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用CodeFirst创建并更新数据库

使用CodeFirst方式创建数据库 我们新建一个控制台项目,项目中添加两个Model:Author和Blog以及DbContext。...会根据配置文件中connectionStrings指定数据库名称来建立数据库 31 //DbContext根据DbSet属性类型来创建数据表,这里指定了Author类型属性,所以会生成...虽然我们没有为DbContext添加Blog类型属性,但依然创建了数据表T_Blogs,这是因为在Author类中定义了Blog类型属性,若我们注释掉 public virtual ICollection...虽然成功更新了数据库,但会导致程序Model和数据表匹配。 2.2.2  自动迁移 启用自动迁移方法前文已经陈述。...最后再补充一点,在创建数据库之后若修改TableAttribute和ColumnAttribute值,那么在执行程序时EF会按照TabelAttribute和ColumnAttribute中指定值和数据库进行匹配

2.6K40
您找到你想要的搜索结果了吗?
是的
没有找到

《ASP.ENT Core 与 RESTful API 开发实战》-- (第5章)-- 读书笔记(上)

第 5 章 使用 Entity Framework Core 5.1 Entity Framework Core EF Core 是微软推出 ORM 框架,一种为了解决高级编程语言中对象和关系型数据库之间映射关系技术...,它能够将程序对象自动持久化到关系型数据库中,并能够将数据库中数据信息自动映射到编程语言中对象 EF Core 另一个特点是支持 LINQ,通过 LINQ,我们能够像操作 .NET 集合对象中数据一样来操作数据库中存储数据...5.2 使用 EF Core EF Core 有两种使用方式: 代码优先:根据先创建实体类来创建数据库和表 数据库优先:根据先创建数据库以及其中数据表来生成与之匹配实体类 创建一个新项目时...,通常建议使用“代码优先”方法,如果使用“数据库优先”,可以通过以下命令生成数据库对应代码 Scaffold-DbContext 代码优先,创建实体类 namespace Library.API.Entities...[Required] [EmailAddress] public string Email { get; set; } public ICollection

1.1K20

Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库

Topic.Posts 和 Post.Topic 属性建立了主外键关系,这两个表主键为 Id,且类型为 int ,这表示在下面的创建数据库过程中,EFCore 会自动为这两个实体对象建立关系和主键...,并会自动设置 Id 字段为主键标识 1.3 编写数据库上下文对象,该对象必须继承自 DbContext DbContext 内置了很多个构造函数,这里使用配置选项方式,实现方式也非常简单,最终,在...1.6 在项目中执行 CURD 操作 至此,数据库创建完成,为了在控制器中使用 ForumContext 对象,我们在 HomeController 中使用依赖注入方式获得 FormContext...驱动,生成实体模型输出到目录 DbModels 中 ` Scaffold-DbContext "server=....表示延迟加载此关联对象,在 Code First 中,导航属性还起到主外键关系定义作用 结束语 本文介绍两种使用 EF Core 方式 通过一个简单 Forum 示例来一步一步了解了 EFCore

1.7K21

C# 数据操作系列 - 9. EF Core 完结篇

所以决定分享一下,个人在实际开发中使用EF Core一些经验和使用扩展包。 1....DbContext提供了Add/AddRange异步方法,但是这组方法异步版需要数据库支持,并不是一个通用方法,所以就没有提。...using关键字机制不会因为中途返回而执行 context.Dispose(),也不会因为中间被抛出异常执行。...EF Core数据库访问插件 微软为SQLite和SQL Server提供了默认数据库连接程序,其中 SQLite是: Microsoft.EntityFrameworkCore.Sqlite SQL...Server是: Microsoft.EntityFrameworkCore.SqlServer 其他常用数据库都是由三方提供,以下是一些常见连接程序包和数据库名称: NuGet 程序包 支持数据库引擎

1.1K10

【ASP.NET Core 基础知识】--数据库连接--使用Entity Framework Core进行数据库访问

创建DbContext类。 配置实体模型。 打开数据库连接。 以下是一个简单示例,演示了如何使用EF Core连接到数据库: 首先,确保已经安装了适当数据库提供程序包。...MyDbContext 类配置了使用 SQL Server 数据库提供程序,并定义了一个名为 Blogs DbSet 属性,用于表示数据库中 Blog 实体。...为了实现跨数据库操作,你必须在 DbContext 中指定对应数据库提供程序,并在 DbContext 构造函数中提供数据库连接字符串。...例如,如果你要使用 SQL Server,你需要安装 Microsoft.EntityFrameworkCore.SqlServer。 创建一个 DbContext 类,并为其指定数据库提供程序。...如果你需要在应用程序使用多个数据库,你可以创建多个 DbContext 实例,每个实例对应一个数据库。每个 DbContext 都会维护它自己会话、缓存和工作线程。

18700

.NET EF Core(Entity Framework Core)

EF Core不支持模型优先,推荐使用代码优先,遗留系统可以使用Scaffold-DbContext来生成代码实现类似DBFirst效果,但是推荐用Code First 。...Migration数据库迁移 面向对象ORM开发中,数据库不是程序员手动创建,而是由Migration工具生成。...“程序包管理器控制台”中执行Update-database 4、查看一下数据库,表建好了 反向工程 1、根据数据库表来反向生成实体类 2、Scaffold-DbContext 'Server=....2、再次运行反向工程工具,对文件所做任何更改都将丢失。 3、建议把反向工具当成了日常开发工具使用建议DBFirst。...1、把被并发修改属性使用IsConcurrencyToken()设置为并发令牌。

12211

张高兴 Entity Framework Core 即学即用:(一)创建第一个 EF Core 应用

欢迎批评与指正,有任何问题都可以通过邮件或者评论方式与我交流。 张高兴 2022年3月22日 ---- 本文将使用 .NET 6 创建一个控制台程序,从 0 开始,学习 EF Core 使用。...项目依赖 使用 Scaffold-DbContext 命令生成实体类 手动创建实体类 实体属性映射 列映射 主键映射 导航属性 创建数据库上下文 从数据库中查询 准备工作 准备工作包含两部分...Scaffold-DbContext 命令生成实体类 接下来使用 Database First 方式去生成实体类。...执行 Scaffold-DbContext 命令报错时,请将 Pandemic.Models 设为启动项目,并且将“程序包管理器控制台”中“默认项目”也设置为 Pandemic.Models。...DbContext 实例表示程序与数据库一个会话(session),通过 DbContext 实例对数据库中数据进行修改和查询。

2.4K10

Entity Framework 约定

如果我们定义模型由继承层次,只需要为基类定义一个DbSet属性即可(如果派生类与基类在同一个程序集,派生类将会被自动包含),代码如下: public class Department { public...DbSet Departments { get; set; } } 当然,有时候我们希望模型映射到数据库中,这时我们可以通过Fluent API 来忽略指定模型映射到数据库中...如果一个类中既没有id属性,也没有类名+id属性,那么代码在运行时将会报错,因为EF没有找到符合要求字段创建主键。...EF中定义关系要使用到导航属性,通过导航属性可以定义多个模型之间关系。大部分情况下我们会将导航属性和外键属性结合在一起使用。...,在模型创建之后用于操作对模型存储,***自定义类约定***都必须在 OnModelCreating 方法中显式配置,例如我们要将模型中类型为DateTime属性映射为datetime2,可进行如下配置

1.3K10

EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型

view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建数据库,我们首先在appsettings.json文件夹中,使用json对来给出mysql数据库连接语句,其次在...新建一个类,用来做数据表基类,同是派生一个继承自DbContext数据库上下文类,注意!这个新数据库上下文一定要有构造函数。...做好之后,使用如下命令创建数据库: 首先打开Nuget管理控制台: Add-Migration xxxx Update-Database 如果我们就生成了数据库了,还会给我们生成一个Migration...那么如果有了数据库怎么使用DbContext呢? 从现有的MySql数据库中使用DB First来创建数据表模型 在这种方案下,我们只需要引入第三方mysql数据库驱动就可以。...然后就执行下面的命令 第一种方案、 从现有Mysql数据库添加到EF Core,使用 程序包控制台(PM): Scaffold-DbContext "server=localhost;port=3306

31120

【愚公系列】2023年02月 .NETC#知识点-使用控制台手搭webapi框架

文章目录 前言 一、使用控制台手搭webapi框架 1.配置文件 2.控制台配置 二、EFCore框架DBSet配置详解 1.实体统一配置 2.实体继承统一接口 3.获取程序集所有类 4.批量注入模型类到...本文涉及知识量巨大主要有如下: EFCore Autofac Serilog Swagger 非常多底层知识 一、使用控制台手搭webapi框架 1.配置文件 appsettings.Development.json...中作为DBSets,再也不需要一个个写DBSet了,可以用过DbContext.Set()获取用户DBSet。...三、EFCore框架表配置详解 1.配置基类, 创建一个配置基类,继承自IEntityTypeConfiguration,做一些通用配置,比如设置主键,软删除等。...,本质就是创建外键,虽然查询很方便,生产中建议使用!!!

1.5K10

.net 温故知新:【10】.NET ORM框架EFCore使用入门之CodeFirs、DBFirst

EF Core 通过数据库提供程序插件模型与 SQL Server/Azure SQL 数据库、SQLite、Azure Cosmos DB、MySQL、PostgreSQL 和更多数据库配合使用。...EFCore入门 在上面的EFCore介绍中我们又看到了提供程序描述,之前文章多次提到这个提供程序是.net框架中随处可见,也就是通过这些不同提供程序实现扩展和适配。...一个模型快照类SqliteContextModelSnapshot上面的[DbContext(typeof(SqliteContext))]属性标识类所属DbContext。...然后安装sqlserver提供程序 nuget 包。...Install-Package Microsoft.EntityFrameworkCore.SqlServer 安装好 nuget 包后在程序包管理器控制台里面使用命令: Scaffold-DbContext

2.5K30

Entity Framework Core一键生成实体命令

打开Vs中工具——Nug包管理器——程序包管理控制台 设置启动项目为存储实体模型类库或控制台 Scaffold-DbContext  "数据库连接字符串" Microsoft.EntityFrameworkCore.SqlServer...项目实际用到命令字符串:Scaffold-DbContext "Data Source=YD-2622;Initial Catalog=MobileVideo;User ID=sa;Password=...   中执行以下语句生成 实体类 Scaffold-DbContext "server=....-ContextDir *** DbContext文件存放目录 -Context *** DbContext文件名 -Schemas *** 需要生成实体数据数据表所在模式 -Tables **...* 需要生成实体数据数据表集合 -DataAnnotations -UseDatabaseNames 直接使用数据库中表名和列名(某些版本不支持) -Force 强制执行,重写已经存在实体文件

2.6K20

.Net Core + EF + mysql 从数据库生成实体

Microsoft.EntityFrameworkCore.Tools Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design 运行命令生成实体 Mysql 版本: Scaffold-DbContext...3306;database=tech5_kj;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Force 或者 Scaffold-DbContext...sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -UseDatabaseNames -Force Sql server版本: Scaffold-DbContext...-ContextDir *** DbContext文件存放目录 -Context *** DbContext文件名 -Schemas *** 需要生成实体数据数据表所在模式 -Tables **...* 需要生成实体数据数据表集合 -DataAnnotations -UseDatabaseNames 直接使用数据库中表名和列名(某些版本不支持) -Force 强制执行,重写已经存在实体文件

1.6K10
领券