草庐IT

试试这 6 个小技巧,提升 EF Core 性能

EntityFrameWork(简称EF)以面向对象的方式操作数据库给开发人员带来了很大的便利性,但其性能问题从面世以来就一直就被广大的.NET生态开发技术人员所吐槽,然而,它真的那么不堪使用吗?试试下面这6个小技巧,瞬间极大提升EFCore性能:AsNoTracking在项目开发的时候,如果查询出来的对象不会被修改、删除等,那么在查询的时候,可以启用AsNoTracking,这样就能降低EFCore的资源占用Book[]books=ctx.Books.AsNoTracking().Take(3).ToArray();Bookb1=books[0];b1.Title="abc";EntityE

如何在 EF Core 中使用乐观并发控制

什么是乐观并发控制?乐观并发控制是一种处理并发访问的数据的方法,它基于一种乐观的假设,即认为并发访问的数据冲突的概率很低。在乐观并发控制中,系统不会立即对并发访问的数据进行加锁,而是在数据被修改时,再检查是否有其他并发操作已经修改了数据。如果检测到冲突,系统再采取相应的措施来解决冲突。EFCore内置了使用并发令牌列实现的乐观并发控制,所谓的并发令牌列通常就是被并发操作影响的列。请看本文是如何在EFCore中使用乐观并发控制的……使用步骤创建一个Asp.netconsole项目,并从Nuget引用EF相关的包Microsoft.EntityFrameworkCore.SqlServerMicr

EF代码首先多级继承问题

我有一个由以下课程组成的多级固有遗物:publicabstractclassBasePoco{[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]publicintId{get;set;}}publicclassActivity:BasePoco{publicActivityTypeActivityType{get;set;}[MaxLength(1000)]publicstringDescription{get;set;}}现在有一种特殊类型的活动,称为数据捕获活动。这是两种类型:dataCaptureActitivity和ma

EF6代码首先,上下文流利的API:如何为多个实体设置相同的字段属性?

我有从同一基类继承的服务器entitespublicclassBaseEntity{publicstringCreatedUser{get;set;}publicDateTime?CreatedDate{get;set;}publicstringChangedUser{get;set;}publicDateTime?ChangedDate{get;set;}}现在,在我的上下文构建器中,我不想在每个构建器方法中分配这些字段属性。我想要一种广义方法,可以在其中添加到每个有价值的构建器方法中privatestaticvoidBasisFields(DbModelBuildermodelBuilde

EF代码首先,具有多个关系的实体

在这里,您可以看到我想存储在SQLite数据库中的减少实体结构。我有一个Graph有一组GraphElements。我的Graph由组成Edges,Nodes和Loads这些都是不同的元素。例如,要进行深入搜索,例如每个节点都需要知道其邻居节点。因此我需要NeigborNodes-列表。对于其他功能,我还需要知道ConnectedElements-列表。classGraph{publicintId{get;set;}publicstringName{get;set;}publicvirtualListGraphElements{get;set;}}[Table("GraphElements")

EF Core助力信创国产数据库

前言国产数据库作为国产化替代的重要环节,在我国信创产业政策的指引下实现加速发展,我们国产数据库已进入百花齐放的快速发展期,相信接触到政府类等项目的童鞋尤为了解,与此同时我们有一部分也在使用各种开源的ORM都早已支持主流国产数据库,我们也有一部分在使用官方EFCore但没有对国产数据库的统一的管理和支持,去年我写过一篇如何使用EFCore适配支持人大金仓,既然如此,利用我工作空余时间将其适配后开源出来,大家来共同添砖加瓦人大金仓和华为高斯数据库介绍人大金仓和华为高斯数据库底层都是基于PostgreSQL,关于各自之后基于数据库本身增添的特性在此不做进一步的阐述,可自行去官网了解。这里我所讲的特性

EF6启用移民不在ASP.NET Core(.NET框架)中工作

我创建了一个ASP.NET核心Web应用程序(.NET框架)VS2017的项目。然后使用nuget我安装了EntityFramework6.1.3(我不能使用EF核心因为它不支持DbGeometry和DbGeography).现在试图运行Enable-Migrations命令软件包管理器控制台它引发了无参考异常。异常调用“setData”,带有“2”参数:.....System.NullReferenceException:对象引用未设置为对象的实例。我的解决方案中只有一个项目,并在软件包管理器控制台的默认项目部分中设置。我读过了这个和这个但是在我的情况下,他们没有工作。也没有project.

EF代码优先:如何将两个实体的数据保存在一个表中?

我有两个叫做的实体ControllerBlockandControllerAction.看到GetControllerBlocks()函数然后您可以理解我如何填充两个类的数据,例如主详细信息。如何使用EF将这两个实体的数据存储在一个表中?表结构类似ControllerNameActionName--------------------------HomeIndexHomeDasBoardHomeChartHRLeaveHRLoanPayrollviewPayrollEditPayrollProcess我的示例代码:publicclassControllerBlock{publicstringC

MVC ASP.NET中的关系逻辑,用于1个代码的1次EF

我与EFASP.NETMVC中的代码第一逻辑有些混淆。ASP.NET页面上的示例说,为此数据库结构publicclassStudent{publicintID{get;set;}publicstringLastName{get;set;}publicstringFirstMidName{get;set;}publicDateTimeEnrollmentDate{get;set;}publicvirtualICollectionEnrollments{get;set;}}publicclassEnrollment{publicintEnrollmentID{get;set;}publicintC

EF Core预编译模型Compiled Model

前言最近还在和npgsql与EFCore斗争,由于EFCore暂时还不支持AOT,因此在AOT应用程序中使用EFCore时,会提示问题:听这个意思,似乎使用CompiledModel可以解决问题,于是就又研究了一下EFCore的这个功能。在EFCore中,模型根据实体类和配置构建,默认情况下,每次创建一个新的DbContext实例时,EFCore都会构建模型。对于需要频繁创建DbContext实例的应用程序,这可能会导致性能问题。EntityFrameworkCore(EFCore)的预编译模型(CompiledModel)对应提供了一种优化,在EFCore6preview5中首次增加了这个功