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

如果没有SaveChanges,EntityFrameworkCore FindAsync将无法插入记录

EntityFrameworkCore是一种开源的对象关系映射(ORM)框架,用于简化数据库操作和数据持久化的开发过程。它提供了一个数据访问抽象层,将数据库操作封装为面向对象的操作,使开发人员能够以对象的方式来处理数据。

FindAsync是EntityFrameworkCore中的一个方法,用于根据指定的主键值查找实体对象。它是一种异步方法,返回一个Task<T>对象,其中T是查找的实体类型。

在EntityFrameworkCore中,进行数据库操作通常需要在对实体进行更改后调用SaveChanges方法来持久化更改到数据库中。如果没有调用SaveChanges方法,实体的更改将不会被保存到数据库中。

具体到本问题中,如果使用EntityFrameworkCore的FindAsync方法查找某个实体对象,但在查找之后没有调用SaveChanges方法,那么即使对该实体进行了更改,这些更改也不会被持久化到数据库中。这是因为SaveChanges方法实际上是将对实体的更改保存到数据库中的操作。

需要注意的是,SaveChanges方法是在执行时才会将更改持久化到数据库,而不是在调用FindAsync方法时。因此,即使在调用FindAsync方法之后进行了实体的更改,只有在调用SaveChanges方法之后,这些更改才会生效。

推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云数据库SQL Server等数据库产品,用于存储和管理数据。 腾讯云云服务器(CVM),提供可靠、安全、灵活和高性能的云服务器实例,用于部署应用程序和运行后端服务。 腾讯云函数计算(SCF),提供无服务器的事件驱动计算服务,可以自动弹性地运行您的代码。 腾讯云云原生容器实例(TKE),用于部署、管理和扩展容器化应用程序。 腾讯云内容分发网络(CDN),提供全球加速和缓存服务,加速内容传输和提供更好的用户体验。

更多关于腾讯云产品的详细介绍和文档可以参考腾讯云官方网站:https://cloud.tencent.com/product

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

EF Core的异步操作 正如这小节题目所言,EF Core是支持异步操作的,但实际可用集中在SaveChanges和异步查询这两个方法上。...DbContext 也提供了Add/AddRange的异步方法,但是这组方法的异步版需要数据库的支持,并不是一个通用的方法,所以就没有提。...如果我们在使用try/catch/finally进行捕获异常的时候,需要在finally里放资源释放的代码。如果资源得不到正确及时的释放会出现更多的问题。...维护商/供应商 Npgsql.EntityFrameworkCore.PostgreSQL postgresql Npgsql 开发团队 Pomelo.EntityFrameworkCore.MySql...5.后续 EF Core到目前为止已经结束了,下一篇开始探索一下Nhibernate或者Dapper吧。OK,C#的数据访问篇里的大头基本完成了。 下一个系列,小伙伴们打算看什么?

1.1K10

Github Copilot Chat 初体验

它还具有学习上一个用户交互的能力,随着时间的推移变得更加准确。如果您需要使用Copilot Chat获取帮助进行开发工作,请在有具体问题的情况下描述清晰问题的场景与具体需求,以便我更好地帮助您。...= null) { _context.ToDos.Remove(existingTodo); _context.SaveChanges()...文章的题目叫 CopilotChat 初体验 CopilotChat 初体验 在这篇文章中,我们一起学习如何使用 Microsoft 的 AI 编程助手,GitHub Copilot 来生成 C# 代码...我们创建一个名为 TodoContext 的类,在其中我们 ToDo 实体框架创建为数据库表。同时还将添加一个连接字符串以及一些模型构建代码。...不过说实话没有第一次使用 Copilot 的时候的那种震撼。为啥?因为 ChatGPT 珠玉在前,短短的一段时间,已经让我们把对 AI 的期望拉到了前所未有的高度。

87550
  • C# TransactionScope「建议收藏」

    TransactionScope TransactionScope事务处理经常用到,老是用了又忘,做点记录。 TransactionScope的定义跟使用介绍。...默认是Required,Required表示如果已有事务,就加入该事务,否则新建一个事务。...(本地测试的时候,连两个不同的数据库报错:EntityFrameWorkCore不支持分布式事务。。)...上述代码走到第一个 SaveChanges 方法的时候,Foo 表锁住,其他查询语句会等待;走到第二个 SaveChanges 方法的时候,Bar 表锁住,其他查询语句会等待。...执行下来,ReadCommitted 隔离级别下,没有发生死锁的现象。 把上述隔离级别改成 Serializable 后,再次执行,当某个线程占用资源的时候,其他线程会抛出异常,不再执行。

    59330

    C# 数据操作系列 - 5. EF Core 入门

    这一章介绍一个在C#世界里大名鼎鼎的ORM框架——Entity Framework的Core版。 Entity Framework 非Core版目前已经更新到了6代,这是一款经过检验的ORM框架。...如果是使用NuGet的命令行界面进行安装的话,可以通过: Install-Package Microsoft.EntityFrameworkCore.Sqlite 这行命令来安装NuGet包。 2....如果是使用的已有数据的数据库,则不需要进行下面的步骤,否则建议执行以下步骤,以便可以由EF Core提供的工具生成数据库: 在 NuGet的控制台界面,输入以下命令: Install-Package Microsoft.EntityFrameworkCore.Tools...这是EF Core保留的迁移记录,以便下次使用。 如果项目根目录里没有 blogging.db 这个SQLite文件的话,会自动创建该文件,同时设置好表;如果有,但不是SQLite的文件,则会报错。...下一篇介绍如何自定义映射关系。

    2.4K10

    EFCore批量操作,你真的清楚吗

    // category表添加3条记录并执行保存 using (var c= new SampleDBContext()) { c.Categories.Add(new Category() {...int,@p5 nvarchar(4000)', @p0=1,@p1=N'Clothing',@p2=2,@p3=N'Footwear',@p4=3,@p5=N'Accessories' 如你所见,批量插入没有产生...3个独立的语句,而是被组合为一个传参存储过程脚本(用列值作为参数);如果使用EF6执行相同的代码,则在SQL Server Profiler中将看到3个独立的插入语句 。...存储过程最多可使用2100个参数 3 豁然开朗 SqlServer sp_executesql存储过程最多支持2100个批量操作形成的列值参数,所以遇到很大数量的批量操作,EFCore SqlProvider会帮我们批量操作分块传输...ToArray())); await _context.Database.ExecuteSqlCommandAsync(txt.ToString()); + https://github.com/aspnet/EntityFrameworkCore

    3.4K10

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

    表示命令执行成功;同时可以看到,在项目中多了一个文件夹 Migrations; 注意:此时,数据库 Forum 并没有被创建 ?...在 Migrations 文件夹中;当执行 Update-Database 命令后,EFCore 设计工具根据 Migrations 中的定义去创建数据库,最终,控制台输出 Done 表示创建完成 ?...ForumContext context) { this.context = context; } 现在,尝试着在项目中执行一些增删改查的工作,插入一条...Topic 记录,在 HomeController 中编写以下代码 [Route("api/[controller]"), ApiController] public class HomeController...如果仅需要生成部分数据表,还可以通过 -Tables 参数添加到上述命令来指定要为哪些表生成实体。 例如 -Tables Blog,Post。

    1.7K21

    ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门

    EF Core + Linq to Entity 访问MySQL数据库 ASP.NET Core MVC 使用 EF Core + 原生SQL访问MySql数据库 EF Core + MySQL数据库插入数据后获取自增列的值...1、引入 EF Core + MySQL Provider EF Core已经集成在 ASP.NET Core 中,但默认并不支持MySQL,如果需要连接MySQL,需要添加MySQL相关的Provider...Ken.Tutorial.Web //添加Package dotnet add package Pomelo.EntityFrameworkCore.MySql 这里我添加的 MySql.Data.EntityFrameworkCore...版本是 8.0.13,如果你想跟我使用一样的版本,可以使用以下命令: dotnet add package Pomelo.EntityFrameworkCore.MySql --version 2.1.4...user LIMIT {0},{1}", pageSize * (page - 1), pageSize).ToList(); } } //事务:年龄

    2.2K21

    .NET Core1.1+VS2017RC+MySQL+EF搭建多层Web应用程序

    2-Application 3-Domain 4-Infrastructure 二、在解决方案文件夹中分别创建项目 新建.NET Core Web应用程序,【身份验证】需要选择【个人用户账户】否则无法执行...migrations操作,猜想原因可能少了某个NuGet包,具体没去测试验证 如果不选【个人用户账户】,migrations操作时会报【No executable found matching command...students) { context.Students.Add(s); } context.SaveChanges...services.AddMvc(); } 注意,标红的代码不可缺少,否则EntityFramework无法执行Migrations,报错信息如下 4.StartUp添加数据库初始化 改造...注意 NuGet包Install或Uninstall命名执行后,查看VS2017RC中依赖的NuGet包发现没有变化(实际上已Install或Uninstall,VS2017RC没有刷新),此时需要关闭解决方案重新打开

    33640

    【asp.net core 系列】9 实战之 UnitOfWork以及自定义代码生成

    SaveChanges的外移 在之前介绍EF Core的时候,我们提到过使用EF需要在每次使用之后,调用一次SaveChanges数据提交给数据库。...实现IUnitOfWork接口 在 Domain.Implement中添加IUnitOfWork实现类: using Domain.Insfrastructure; using Microsoft.EntityFrameworkCore...是的,之前我介绍了很多关于写配置文件不使用特性的好处,但不解决这个问题就无法真正体检配置类的好处。...虽然说,EF Core约定优先,但是如果默认约定的话,得在DBContext中声明 DbSet 来声明这个字段,实体类少的话,比较简单。如果多个数据表的话,就会非常麻烦。...Domain.Implements.Insfrastructure;" + $"\r\nusing Domain.Repository{targetNamespace};" + $"\r\nusing Microsoft.EntityFrameworkCore

    59310

    WPF 运行时迁移 EF Core 数据库

    " Version="3.0.0"/> <PackageReference Include="Microsoft.<em>EntityFrameworkCore</em>.Sqlite" Version="3.0.0....UseSqlite($"Filename={file}"); } } 重写 OnConfiguring 方法在里面写连接方法,此时就完成了数据定义,但是还没有创建数据库...dotnet ef migrations add Lindexi 执行上面代码可以看到在项目里面添加了 Migrations 文件夹,这个文件夹里面包含数据库的迁移代码 在主函数可以使用下面代码创建数据库,如果数据库已经创建了那么什么都不做...,那么请使用 Database.Migrate 函数创建数据库,之后可以在访问数据库之前调用这个函数让数据库如果没有更新就自动更新 每次调用 Migrate 都需要一定的时间,建议在另一个线程运行 如果在运行...SaveChanges 提示 no such table 那么可能是在调用 Migrate 等方法之前没有先调用 dotnet ef migrations 创建迁移类

    62310

    EF Core利用Transaction对数据进行回滚保护

    首先,说一下什么是EF Core中的Transaction Transaction允许以原子方式处理多个数据库操作,如果事务已提交,则所有操作都应用于数据库,如果事务回滚,则没有任何操作应用于数据库。...假如,第一步执行完了,第二部因为某种原因执行失败了,那么,是不是A的账户平白无故地少了X元而B并没有多X元呢?显然这种事情是不能发生的,正确的做法是,把第一步撤销,即把A账户减去的X元加上。...bankContext.Wallets.Add(AUser); _bankContext.Wallets.Add(BUser); _bankContext.SaveChanges...TransferAccounts")] public string TransferAccounts() { 通过InitData方法,我们把数据初始化,往数据库中插入...为什么A的账户明明执行了减去10元的操作,而最后没有生效呢?

    1.5K50
    领券