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

将EF代理对象转换为原始POCO对象的最佳方法是什么?

将EF代理对象转换为原始POCO对象的最佳方法是使用AsNoTracking()方法。这个方法可以避免在查询结果中创建代理对象,从而将EF代理对象转换为原始POCO对象。

以下是一个示例代码:

代码语言:csharp
复制
using (var context = new MyContext())
{
    var blogs = context.Blogs
        .AsNoTracking() // 使用AsNoTracking()方法
        .ToList();
}

在这个示例中,AsNoTracking()方法用于避免在查询结果中创建代理对象,从而将EF代理对象转换为原始POCO对象。这种方法可以提高性能,特别是在查询大量数据时。

需要注意的是,当使用AsNoTracking()方法时,EF上下文将不会跟踪查询结果中的任何更改,因此在需要更新数据时需要手动处理。

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

相关·内容

  • 2022年了有哪些值得推荐.NET ORM框架?

    它解决了对象和关系型数据库之间数据交互问题,ORM作用是在关系型数据库和业务实体对象之间作一个映射,这样我们在具体操作业务对象时候,就不需要再去和复杂SQL语句打交道,只需简单操作对象属性和方法...EntityFramework.TypedOriginalValues - 通过某些特殊方法来获得数据库对象在本次修改前原始值。常见使用场景是对数据库操作数据做审计。...Dapper Dapper是一个简单.NET对象映射器,在速度方面具有"King of Micro ORM"头衔,几乎与使用原始ADO.NET数据读取器一样快。...主要特点: 与Dapper一样,它很快,因为它使用动态方法生成 (MSIL) 列值分配给属性。 像Massive一样,它现在也支持动态 Expandos。...友好、普通旧C# 对象 (POCO)。

    5.9K11

    2022年了有哪些值得推荐.NET ORM框架?

    它解决了对象和关系型数据库之间数据交互问题,ORM作用是在关系型数据库和业务实体对象之间作一个映射,这样我们在具体操作业务对象时候,就不需要再去和复杂SQL语句打交道,只需简单操作对象属性和方法...EntityFramework.TypedOriginalValues - 通过某些特殊方法来获得数据库对象在本次修改前原始值。常见使用场景是对数据库操作数据做审计。...Dapper Dapper是一个简单.NET对象映射器,在速度方面具有"King of Micro ORM"头衔,几乎与使用原始ADO.NET数据读取器一样快。...主要特点: 与Dapper一样,它很快,因为它使用动态方法生成 (MSIL) 列值分配给属性。 像Massive一样,它现在也支持动态 Expandos。...友好、普通旧C# 对象 (POCO)。

    3.8K20

    Entity Framework简介

    零、什么是Entity Framework Entity Framework (简称EF),是.NET Object/Relational Mapping 实体框架(简称ORM),可以在 SQL Server...可以数据作为业务对象和实体进行操作,使用LINQ进行查询,使用C#进行操作和检索。...POCOC是指 .NET Framework公共语言运行时(Common Language Runtime,CLR)中一个简单对象。...POCO对域对象使用尽可能简单类,可以包含属性、方法等,但是方法不能实现持久化逻辑,也就是说POCO也可以包含业务逻辑。...优缺点如下: 无法控制实体和数据库,因为自动生成代码难以修改,但是对于小型且简单项目,它仍行之有效; 在实体中添加额外功能,不得不修改T4模板或者使用部分类来完成; 数据库模型更改不是最佳选择

    1.7K10

    Entity Framework 4 POCO学习

    Entity Framework 4特性介绍可看这篇文章 .NET 4中Entity Framework简介,其中最感兴趣一点就是对POCO支持了:EF4为实体提供了简单传统CLR对象(Plain...您实体对象可以独立于EF存在,由此EF更好地支持了测试驱动开发(test-driven development)和领域驱动设计(domain-driven design)。...同时,EF仍旧可以帮助跟踪POCO实体变化,允许延迟加载,也会自动修正对导航属性(navigation properties)和外键改动。...其中一个很大原因,也许就是不支持POCO,至少我自己是这么想而不使用EF1,Entity Framework 4.0版本(又称EF V2)提供POCO支持,对很多人来说,这是开始使用Entity...POCO (【翻译】实体框架中POCO支持 - 第三部分 - POCO变动跟踪) 还有这篇文章EF 4 – Implementing POCO Objects,图文并茂详细介绍了整个过程。

    1.1K80

    Entity Framework快速入门--直接修改(简要介绍ObjectContext处理机制)

    Added 对象为新对象,并且已添加到对象上下文,但尚未调用 SaveChanges 方法。 在保存更改后,对象状态更改为 Unchanged。...状态为 Added 对象在 ObjectStateEntry 中没有原始值。 Deleted 对象已从对象上下文中删除。 在保存更改后,对象状态更改为 Detached。...在不带更改跟踪代理 POCO 实体中,调用 DetectChanges 方法时,已修改属性状态更改为 Modified。 在保存更改后,对象状态更改为 Unchanged。...不推荐方式一: 思路:先从ObjectContext取出实体,然后前台传过来DTO属性对应赋值到我们实体上,然后调用ObjectContext保证修改方法。...推荐方式二: 思路:无需先查出实体,因为我们知道EF通过ObjectStateManage来控制添加、修改、删除队列以及实体状态,我们所有可以通过在直接DTO转化成实体,然后实体对应队列中,并且我们手动实体状态处理好

    79230

    七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

    通过编写代码数据库数据映射到面向对象数据,或反向操作。 ORM是一种能够自动完成这两种方式工具。EF是微软ORM工具。 什么是代码优先方法?...l 模型优先方法——模型优先指模型类及模型之间关系是由Model设计人员在VS中手动生成和设计EF模型生成数据访问层和数据库。 l 代码优先方法——代码优先指手动创建POCO类。...这些类之间关系使用代码定义。当应用程序首次执行时,EF将在数据库服务器中自动生成数据访问层以及相应数据库。 什么是POCO类?...POCO即Plain Old CLR对象POCO类就是已经创建简单.Net类。在上两节实例中,Employee类就是一个简单POCO类。 实验8——添加数据访问层 1....当每次需要访问Employees时,会获取“TblEmployee”所有记录,并转换为Employee对象,返回Employee对象集。 如何连接数据访问层和数据库?

    5.3K100

    DDD实战进阶第一波(五):开发一般业务大健康行业直销系统(实现产品上下文领域层)

    产品上下文主要实现产品上架功能,为了实现上架功能,我们首先要实现产品上下文领域POCO模型与领域逻辑, 我们产品POCO模型与领域逻辑建立到一个叫Product.Domain项目中。...产品SPU领域对象POCO代码: public partial class ProductSPU : IAggregationRoot { [Key] public...领域对象除了包含自身属性,也应该包括自身业务逻辑,产品上架功能比较简单,业务逻辑也比较简单,主要就是如何生成整个领域对象,以及聚合根与实体业务标识符Code生成规则。...Product.Domain除了要实现领域逻辑之外,还要定义ProductSPU仓储接口、通过EF Core定义产品上下文与数据库上下文之间映射关系。...到这里,我们就基本实现了产品上下文领域层,可以看到领域层主要是领域逻辑,定义了一个仓储接口,数据库技术解耦,当然要定义领域对象与数据库之间映射关系,否则用例无法完成真正 对领域对象持久化。

    1.1K50

    盘点 .NET 比较流行开源ORM框架

    EF提供变更跟踪、唯一性约束、惰性加载、查询事物等。 开发人员使用Linq语言,对数据库操作如同操作object对象一样省事。 EF有三种使用场景: 1、从数据库生成Class。...开源地址:https://github.com/dotnet/ef6 六、NHibernate(国外) NHibernate 是一个成熟开源对象关系映射器,适用于 .NET 框架。...数据库访问库,在 POCO 对象和数据库之间提供了一个简单、轻量、快速且类型安全层。...插入/删除/更新/保存和 IsNew 辅助方法 分页请求会自动计算出总记录数并获取特定页面。 简单交易支持。 更好参数替换支持,包括从对象属性中获取命名参数。...包括 T4 模板以自动为您生成 POCO 类。(V5) 用于记录异常、安装值转换器和列映射到没有属性属性挂钩。

    4K41

    airtest测试用例_Airtest 常用方法

    调用此方法返回 新 设置了默认 焦点 UI,重复调用则以最后一次所调用为准。focus 所使用是局部坐标系,因此同样是UI包围盒左上角为原点,x轴向右,y轴向下,并且包围盒长宽均为单位1。...= poco(text=’balloonfish’).focus([0.5, -3]) balloonfish_image.long_click() 下面的示例表明,focus是一个不会影响原始UI不可变方法...在for循环中,每次迭代对象都是一个UI代理,所以可以像之前说那样,去访问对象属性和进行对象操作。...测试一个UI控件是否存在可以调用UI代理 .exists() 方法。...UI遍历有效,如果只是简单按名字选择请不要用这种方法,因为一点效果都没有冻结UI其实就是当前界面的层次结构包括所有UI属性信息抓取并存到内存里,在跟UI交互时就直接从内存里读取UI属性,而不用在发送

    1.6K30

    用事实说话,成熟ORM性能不是瓶颈,灵活性不是问题:EF5.0、PDF.NET5.0、Dapper原理分析与测试手记

    3,微型ORM崛起   也是最近两年,谈论微型ORM的人也越来越多了,它们主打"灵活"、"高性能"两张牌,查询不用Linq,而是直接使用SQL或者变体SQL语句,结果直接映射成POCO实体类。...,最快实现给对象赋值?...方法上,Setter委托绑定到PropertyInfo.SetValue 方法上,那么在使用时候可以像下面这个样子: CastProperty cp = mProperties[i]; if (...在LINQ to Object中,Where方法接受一个Func类型参数——它是一个根据某个对象(T)返回true(表示包含该对象)或false(表示排除该对象委托。...多次运行发现,EF仅这一次较慢,以后数次都很快,看来EF代码缓存策略,跟Dapper还是不一样。 但是,Dapper居然输给了EF,这是怎么回事?莫非表达式树比Emit还快?还是EF结果缓存了?

    4.1K90

    .NET 使用Automapper映射 Record类型

    我已经项目的所有Dto都是用record类型,但是record类型还是有些需要注意点,本文介绍如何使用AutomapperPOCO映射成record对象。...string LastName { get; set; } public int Age { get; set; } } 现在,我们希望这个POCO类映射成一个record类型对象PersonRecord...personRecord对象具有与person相同属性值。 值得注意是,由于record是不可变,因此我们只能在创建时初始化其属性,无法在后续代码中修改属性值。...总结 我们了解了使用AutomapperPOCO映射成record对象步骤。 首先,我们需要安装和配置Automapper,然后定义映射规则。...最后,在需要进行映射地方调用mapper.Map方法即可。 这样,我们可以轻松地POCO对象换为不可变record对象

    22520

    不一样视角来学习Spring源码之AOP---下

    方法 源码小探 收获 代理创建时机 如果是循环依赖情况下,代理对象创建时机?...接口,能够获得关联切面集合与目标(其实是从 ProxyFactory 取得) 调用代理方法时,会借助 ProxyFactory 通知统一为环绕通知:MethodInterceptor ----...默认顺序是: Bean1()对象创建----->Bean1 init()初始化方法调用---->判断是否需要创建代理对象,如果需要就进行包装---->后续依赖注入注入都是代理对象 ---- 如果是循环依赖情况下...AspectJAfterAdvice (环绕通知) ---- 统一换为环绕通知 无论ProxyFactory采用哪种方式创建代理,最后干活advice都是一个MethodInvocation对象,...getInterceptorsAndDynamicInterceptionAdvice方法中完成 ---- 调用链执行 解析切面类---->所有解析后切面加入切面列表---->所有不是环绕通知低级切面都通过适配器转换为对应环绕通知形式切面

    39630

    自动类型安全.NET标准REST库refit

    原始结果交给 refit,后者根据用户需求对结果进行解析过程。...该接口定义了一个函数 GetUser,该函数会通过HTTP GET请求去访问服务器/users/{user}路径并把返回结果封装为User POCO 对象返回。...[Post("/users/new")] Task CreateUser([Body] User user); 对象将被RestService 使用对应转换器转换为字符串或者字节流提交到服务器。...4、FORM ENCODED AND MULTIPART 表单和Multipart 函数也可以注解为发送表单数据和multipart 数据 5、服务器结果转换为C# 对象 使用RestService 转换器把...HTTP请求结果(默认为JSON)转换为C#对象,C#对象通过函数返回值指定 6、添加请求头 我们可以通过[Headers]来添加请求头,支持动态请求头。

    1.4K70

    DataReader类型化数据读取与装箱性能研究

    前言 在各种ORM框架或者SQL映射框架(例如MyBatis,SOD框架之SQL-MAP功能)中,都有查询结果映射为内存对象需求,包括映射到实体类、简单类型(例如JavaPOJO,.NETPOCO...映射对象 下面的测试方法都是数据库同样数据通过DataReader读取出来映射到不同对象中,本篇文章测试用来映射对象一个是SOD框架实体类,一个是普通DTO对象,DTO是POCO一种。...1,手写查询映射 测试方案为DataReader读取出来数据手工逐一映射到一个POCO对象属性上,例如下面映射到UserDto对象上。...AdoHelper对象ExecuteMapper方法数据查询结果封装成一个DataReaderMapper对象,然后可以使用该对象MapToList方法使用DataReader对象类型化数据读取方法...上面的方法调用了QueryList泛型方法来处理DataReader对象读取数据,下面看看它实现: /// /// 采用快速方法数据阅读器结果映射到一个POCO列表上

    1.6K20

    自动类型安全.NET标准REST库refit

    原始结果交给 refit,后者根据用户需求对结果进行解析过程。...该接口定义了一个函数 GetUser,该函数会通过HTTP GET请求去访问服务器/users/{user}路径并把返回结果封装为User POCO 对象返回。...[Post("/users/new")] Task CreateUser([Body] User user); 对象将被RestService 使用对应转换器转换为字符串或者字节流提交到服务器。...4、FORM ENCODED AND MULTIPART 表单和Multipart 函数也可以注解为发送表单数据和multipart 数据 5、服务器结果转换为C# 对象 使用RestService 转换器把...HTTP请求结果(默认为JSON)转换为C#对象,C#对象通过函数返回值指定 6、添加请求头 我们可以通过[Headers]来添加请求头,支持动态请求头。

    1.4K40
    领券