DbContextPool 是 ASP.NET Core 2.1 引入的新特性,可以节省创建 DbContext 实例的开销,但没有想到其中藏着一个小坑. 最近有一个 ASP.NET Core 项目持续运行一段时间后日志中就会出现数据库连接池达到最大连接数限制的错误: System.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from
Loading Related Data https://docs.microsoft.com/en-us/ef/core/querying/related-data Eager loading means that the related data is loaded from the database as part of the initial query. Explicit loading means that the related data is explicitly loaded
EF版本 6.0 在项目中双向一对一关系是普遍存在的,如果不仔细检查,并不容易发现这个坑 下面新建两个类(假设这两个类是一对一的关系)对应实体都设置为可延迟加载 映射关系为: 再建一个数据访问类: 运行下面查询语句: TestContext db = new TestContext(); var list = db.QuerySchool.ToList(); 正常情况下,生成的查询语句应该只查询SchoolInfo表,但是生成sql语句却是这样: SELECT [Extent1].[Sid] A
1.简单 count 会生成不必要的嵌套 var xs = (from x in dbContext.db_API_Operationallog where x.id<1 select 1 ).Count(); 结果: SELECT [GroupBy1].[A1] AS [C1] FROM ( SELECT COUNT(1) AS [A1] FROM [dbo].[db_API_Operationallog] AS [Extent1] WHERE [Extent1].[id] < 1 ) AS
原文:VS2017 + EF + MySQL 我使用过程中遇到的坑 写在前面: 第一次使用MySQL连接VS的时候本着最新版的应该就是最好的,在MySQL官网下载了最新版的MySQL没有并且安装完成之后,使用MySQLHelper连接MySQL数据库也是正常的,也就没有太在意,在第二天在项目中搭建EF时,问题不断,花了几天时间才彻底搞定了,下面就具体说一下我遇到的一些坑. 坑1:您的项目引用了最新版实体框架,但是,找不到进行数据连接所需的与此版本兼容的实体框架数据库提供程序. 这个问题也是困扰我