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

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 的期望拉到了前所未有的高度。

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

C# TransactionScope「建议收藏」

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

56330

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没有刷新),此时需要关闭解决方案重新打开

32940

【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

58010

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 创建迁移类

60610

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

Entity Framework Core 2.0 入门

不过首先, 如果您也和我一样, 没有装Sql server management studio或者 Visual Studio的话, 请您先安装VSCode的mssql这个扩展: 重启后, 建立一个Sql...SaveChanges方法, 会检查所有被追踪的models, 读取他们的状态. 这里用到是Add方法, context就会知道这个model的状态是new, 所以就应该被插入到数据库....如果表的数据比较多的话, 那么就会有性能问题了. 更新数据. 很简单, context所追踪的model属性变化后, SaveChanges就会更新到数据库....当然, 多个更新操作和插入等操作可以批量执行. 离线更新. 就是这种情况, 新的context一开始并没有追踪one这个数据. 通过使用Update方法, 追踪并设置状态为update....预加载子表的子表: 可以使用ThenInclude方法, 这个可以老版本ef没有的.

3.1K80
领券