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

Entity Framework Core 2.0 新特性

模型级过滤器将使用正确上下文实例值,即执行查询那个。   使用  IgnoreQueryFilters() 方法在一次查询禁用过滤器。...在 ef core 2.0 ,我们将自定义DbContext类型注册到DbContextPool服务,可让该数据库上下文类型实例重复使用。...在以前ef版本,调用查询api,可以通过自动编译并缓存编译结果达到一次计算多次调用,有效提高了ef性能,显示编译查询(Explicitly compiled queries)这种机制可以绕过缓存查找性能消耗...一旦注册了方法,您就可以在查询任何地方使用它。  要注意几件事: 按照惯例,在生成SQL,该方法名称用作函数名称(在本例是用户定义函数),但可以在方法注册期间重写名称和schema。...声明:原创博客请在转载保留原文链接或者在文章开头加上本人博客地址,发现错误,欢迎批评指正。凡是转载于本人文章,不能设置打赏功能,如有特殊需求请与本人联系!

1.9K50

03-EF Core笔记之查询数据

预先加载 使用Include方法指定要包含在查询结果关联数据。...好一点是,EF Core在设计时就替我们考虑了如何防御SQL注入攻击,因此当我们使用FromSql方法,参数如果有使用到拼接字符串情况,则会自动为我们生成SQL查询参数,例如: var user...SQL查询EF Core仍然支持我们使用linq编写查询语句。...在执行查询EF Core会检查我们sql语句是否支持拼接,如果支持情况下,则会将linq过滤语句拼接为sql一并发送到数据库进行查询。 跟踪 原始SQL跟踪与Linq查询跟踪方式一致。...p.IsDeleted); } 我们可以在特定查询禁用全局筛选器: blogs = db.Blogs .Include(b => b.Posts) .IgnoreQueryFilters

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

【源码解读(一)】EFCORE源码解读之创建DBContext查询拦截

二:DbContext构造函数里面做了那些事情。     三:如何在EfCore服务获取到Web注入服务方式之一。     四:拦截查询几种方式。     ...五:使用缓存查询方法提升性能。     六:如何托管EFCOREIOC容器(和WebIOC使用同一个)     以上作为本篇文章所有内容,接下来,我们来开始讲解源码,动手实践。...efioc到web时候可以使用这种方式来实现,后面也会写一个这样例子。...如果是使用EFIOC托管到了WebIOC,只需要正常注入服务就行,生命周期是Scope, #未接管 optionsBuilder.ReplaceService<IAsyncQueryProvider...构造函数又做了那些事情,在写了不托管EFioc到WEBioc场景下如果注入服务到EFioc,以及如何拦截增删改查方式,提升查询性能方式,以及最后EFioc托管到WEBioc,本文作为源码讲解第一章

41520

EF Core关系配置

属性赋值(当前赋值也不会出错),也不需要显式地把新创建Comment类型对象添加到DbContext。...执行SaveChanges()等方法EF Core将会把存储快照值与实体的当前值进行比较。...已删除(Deleted):DbContext正在跟踪此实体,并存在于数据库,但在下次调用 SaveChanges 要从数据库删除对应数据。...) 更新到数据库; “已删除”实体,SaveChanges() 从数据库删除; 查看实体状态: 使用DbContextEntry()方法来获得实体在EF Core跟踪信息对象EntityEntry...EF Core优化之AsNoTracking 如果通过DbContext查询出来对象只是用来展示,不会发生状态改变,则可以使用AsNoTracking()来 “禁用跟踪”。

7910

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

在选择使用 EF Core ,开发者需要根据项目需求选择合适数据库提供程序,并确保安装了相应 NuGet 包。...在 Entity Framework Core(EF Core),ORM 概念依然适用,EF Core 提供了 ORM 功能,允许开发者使用 .NET 类型(类和对象)来表示数据库表格和数据,...EF Core 通过提供事务上下文支持数据库事务。 事务在 EF Core 使用涉及以下步骤: 开始事务:在 DbContext 实例开启一个事务。...以下是一个简单示例,演示了如何在 EF Core 中进行跨数据库操作: 安装相应数据库提供程序 NuGet 包。...文章首先介绍了EF Core基本概念,然后讲解了EF Core连接数据库,如何在多数据库环境下使用EF Core,以及需要注意性能和兼容性问题。

17900

【研发日记13】不使用三方包,如何在ThinkSNS建立优雅用户权限管理

数据表设计 其实这一块我个人是参考 Zizaco/entrust 因为我觉得,大多数情况下,我们要用角色和权限节点都是真多用户。...链式方法设计 其中调用 $user->ability()->all() 和 $user->ability()->all() 都是返回 集合 可以链式调用集合下所有方法进一步操作。...ability 用户 Trait Ability 实例 Role 模型所需代码 使用 然后我们打开 User 模型wen jia文件添加如下代码: class User ......{    use UserHasAbility; } 总结 其实性状在 User 模型只暴露了 roles 和 ability 两个公开方法。...整个 ability 都是结合在集合之上一些封装,这样是的代码调用更加优雅。 以上代码是在开发ThinkSNS+实际真实代码。具体实现可参考项目。

1.1K40

EF简介

二、使用ef进行数据库增删改差: ef实现增删改差流程:(1)通过把实体变化,转换成数据处理类(语句) (2)通过调用ADO.NET将处理类(语句)转换成sql语句(3)将sql语句插入到数据库执行并返回结果...1、当使用上下文操作数据库表,被操作表必须含有主键,否则回报错。...2、 //利用EF像数据库添加一条数据 //first step:创建访问数据库统一入口.创建EF上下文 TestEntities dbContext...错误原因我们来分析下: 经过调试代码我们发现,当我们第一次new T_ConsultingList对象,这个对象为空,当我们使用ef添加完数据后,再去观察这个对象我们会发现,这个对象里面已经有值了,...//利用EF像数据库添加一条数据 //first step:创建访问数据库统一入口.创建EF上下文 TestEntities dbContext

1.4K80

【asp.net core 系列】14 .net core IOC

所谓控制反转简单来讲就是将类属性或者其他参数初始化交给其他方处理,而不是直接使用构造函数。...所谓依赖注入就是属性对应实例通过构造函数或者使用属性由第三方进行赋值。也就是最后Demo2示例代码写法。 早期IOC和DI是指一种技术,后来开始确定这是不同描述。...IOC描述是一种设计模式,而DI是一种行为。 2. 使用asp.net core默认IOC 在之前ASP.NET 框架,微软并没有提供默认IOC支持。...AutoFac 使用 理论上,asp.net coreIOC已经足够好了,但是依旧原谅我贪婪。如果有二三百个业务类需要我来设置的话,我宁愿不使用IOC。因为那配置起来就是一场极其痛苦过程。...总结 这一篇简单介绍了如何在Asp.net Core启用IOC支持,并提供了两种方式,可以说是各有优劣。小伙伴们根据自己需要选择。后续会为大家详细深入AutoFac之类IOC框架核心秘密。

1.2K20

ASP.NET MVC5高级编程——(3)MVC模式模型

模型对象属性如果设置为虚拟,可以给EF提供一个指向C#类集钩子(hook),并未EF启用了一些特性,高效修改跟踪机制(efficient change tracking mechanism)...当使用EF代码优先方法,需要使用EFDbContext类派生出一个类来访问数据库。...这个MvcMusicStoreDB是继承了DbContext,其作用概括来说:对模型类修改会反映到数据库,反之亦然,对数据库修改也会反映到模型类EF实体框架会使用数据迁移来帮我们完成。...可以告知EF在应用程序每次启动重新创建数据库或者仅当检测到模型变化时重建数据库。当调用EFDatabase类静态方法SetInitializer,可以选择这两种策略任意一个。...在ASP.NET MVC可以通过使用Bind属性限制可被更新Model属性。绑定多个字段部分字段:通过Bind属性来定义Model需要绑定哪些字段。

4.7K40

dotnet core 使用 ef 迁移常见问题

本文记录一些常见使用 EF Core 问题 版本太低 执行命令dotnet ef migrations add lindexi.github.io显示下面代码 dotnet ef --info It...,解决方法是更新 EF 和更新 SDK 版本 可以使用一个工具协助更新 EF 版本,这个工具能更新所有工具版本,使用方法如下 通过下面代码安装 dotnet tool install -g dotnetCampus.UpdateAllDotNetTools...此后使用不用再次安装 通过下面代码更新所有工具 dotnet updatealltools 其次进入 https://dotnet.microsoft.com/ 下载安装最新版本 SDK 就可以...代码构建不通过 使用 dotnet ef 第一件事就是执行构建,如果此时代码构建不通过,那么自然失败 请在迁移失败尝试用 dotnet build 看是否能构建通过 没有配置路径 使用 Sqlite...This is often because no database provider has been configured for this DbContext.

1.3K20

.NET 云原生架构师训练营(模块二 基础巩固 EF Core 基础与配置)--学习笔记

/core/miscellaneous/async 当在数据库执行查询,异步操作将避免阻止线程。...异步操作对于在丰富客户端应用程序中保持响应式 UI 非常重要,并且还可以增加 web 应用程序吞吐量,在这些应用程序,它们可释放线程以处理 web 应用程序其他请求 var blog = new...上下文池可以通过重复使用上下文实例,而不是为每个请求创建新实例,从而提高大规模方案( web 服务器)吞吐量。...,在请求上下文实例EF 首先检查池中是否有可用实例。...请求处理完成后,实例任何状态都将被重置,并且实例本身会返回池中。 避免在维护状态应用程序中使用上下文池。 例如,不应在请求之间共享上下文中私有字段。

73611

EF+MySQL乐观锁控制电商并发下单扣减库存,在高并发下问题

下面讨论如何在高并发下实现这个扣减库存问题。...初试:EF手工版乐观锁 我们用EF(Entity Framework)+MySQL,很不幸,在 EF 没法直接实现这个效果,它DbContext数据上下文决定了要完成这种情况下修改,得先查询到指定数据到...但是,经过简单压力测试,上面这个程序会出现“超买”,没有控制到并发修改库存问题,于是尝试用“EF乐观锁”来解决这个扣减库存问题, 进阶:EF乐观锁 参考了2篇文章《EF在MySQL对记录乐观并发控制...封装可能代码问题,这里完全使用EF最原始方式来编写代码。...PS:虽然解决了本文问题,但是EF这种并发处理方案,在代码编写上还是略显麻烦,是否使用ESQL或者其它ORM框架,看你偏好了。

2.5K80

EntityFramework Core 学习扫盲

当开发者需要进行自定义修改名称( 比如每种关系型数据库命名规则不一样,虽然笔者一直喜欢使用帕斯卡命名以保持和项目代码结构统一),可以使用以下方式。...少数几个CLR类型在不做处理情况下,映射到数据库将存在可空选项,string,int?,这种情况也在下列方式做了说明。...索引 EF CORE索引概念和关系型数据库索引概念没有什么不同,比如在Sql Server,将Blog映射到数据库,将为BlogId建立主键默认持有的聚集索引,将Post映射到数据库,将为...虽然主体键也包括主键,但是主键在EF CORE强制定义,所以HasPrincipalKey只会将属性配置为备用键。 2....简单来说,当你有依赖注入需求,便需要使用第一种构造模型。

9.5K90
领券