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

一步步学习EF Core(3.EF Core2.0路线图)

延迟加载功能。 对于不在模型中的原始SQL语句查询,允许使用原始SQL语句查询来填充不在模型中的类型(通常用于非规范化的视图模型数据)。  ...改进的视图映射,允许EF自动从数据库逆向工程视图或使用迁移维护它们(DBFirst)。 4.高优先级的功能 实体模型 更灵活的属性映射,如构造函数参数,get / set方法,属性包等。...ETag式并发令牌支持提供了统一的编码模式,用于管理与模型配置无关的并发性。 贪婪加载,允许在查询实体时始终检索默认的相关数据集。 过滤加载,允许加载相关实体的一个子集。...拥有的实体和表分割(以启用复杂类型和/或值对象模式)(#246) - 允许映射类型不具有自己的身份,但始终依赖于其他对象,并将它们映射到与其父对象相同的表。...原来考虑加入,但没有进展,基本上要推迟的内容: 用于非实体类型的原始SQL查询(#1862) - 使用不在模型中的类型执行具有临时映射的查询。

3.1K90

03-EF Core笔记之查询数据

SQL查询 当Linq无法满足查询需求,或因为使用Linq生成效率比较低的SQL查询时,可以考虑使用原始SQL进行查询。...EF Core支持原始SQL语句和存储过程。...= context.Blogs .FromSql("EXECUTE dbo.GetMostPopularBlogs") .ToList(); 参数传递 当使用原始SQL进行查询时,必须使用参数化查询以抵御...好的一点是,EF Core在设计时就替我们考虑了如何防御SQL注入攻击,因此当我们使用FromSql方法时,参数中如果有使用到拼接字符串的情况,则会自动为我们生成SQL查询参数,例如: var user...关联数据 原始SQL中查询关联数据的方式与Linq查询的关联方式一致。 全局筛选器 全局筛选器对于软删除和多租户非常有用。

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

    Entity Framework Core 2.0 新特性

    包含定义导航的实体是所有者。当查询所有者时,默认情况下将包含所有类型。 按照惯例,将为所属类型创建一个影子主键,并通过使用表分割将其映射到与所有者相同的表。...这些过滤器自动应用于涉及这些实体类型的任何LINQ查询,包括间接引用的实体类型,例如通过使用Include或直接导航属性引用。...2.性能提升方面 2.1DbContext连接池 在ASP.NET Core程序中我们使用EF Core一般都是将自定义DbContext类型注册到依赖注入系统中,然后通过控制器中的构造函数参数获取该类型的实例...在EF核2.0,我们增加了对插值字符串中的特殊支持,我们接受原始的SQL字符串两个主要的API:FromSql和ExecuteSqlCommand。...这种新的支持允许以“安全”的方式使用C#字符串插值。这样就可以防止在运行时动态构建SQL时发生的常见SQL注入攻击.

    3.9K90

    SpringBoot 笔记

    -- 查询单个 id必须唯⼀ 和dao中的函数名关联 parameterType="" 表示约束传⼊参数的类型--如果参数类型过多,可以不⽤写 resultType="" 表示返回值的类型(必须是实体类和数据库字段...id 这样插入时无需赋值id,当插入后,框架会将插入后数据库此行id带回来赋值给原对象.id,这样你就可以继续使用此对象获取到id, 和 EF中的状态跟踪类似,也是带回id,赋值给原对象,其实EF中就是每条...使用Restful API 风格 其实与 ASP.NET MVC 与 ASP.NET WebAPI 普通 Controller 与 ApiController 的区别 类似 Q: 无法连接数据库 java.sql.SQLException...指的是需要使用 等这种标签(使得SQL语句可变),在这种标签内需要引用参数,引用参数使用 @Param("name") 中设置的name 而如果仅传一个参数,也不需要动态SQL,则直接使用...当我导航到我的域中的另一个网页时,不发送Cookie。 (注意:我没有做任何跨域的ajax请求;请求与文档在同一个域中。)

    1.8K10

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

    5 什么是实体框架,什么是代码优先和数据上下文? 新建的ASP.NET MVC5项目会自动包含对实体框架(EF)的引用。...其中Include是采用预加载策略,尽其所能的使用查询语句加载所有数据。而EF框架的另一种也是默认的策略是延迟加载策略,即只加载主要对象(专辑)的数据,而不填充Artist和Genre。...4.2使用数据库初始化器--每次插入初始数据-方便项目测试 保持数据库和模型变化同步的一个简单方法是允许实体框架重新创建一个现有的数据库。...,该属性包含当用户选择一个指定项时使用的值(键值 ,像52或2) 第3个参数是每一项要显示的文本 第4个参数包含了最初选定项的值 5.2 模型和视图模型终极版 针对专辑的编辑情形,模型对象(Album对象...如果不希望在每个Action的参数中都应用Bind属性,可以在Model定义中指定: ? 当绑定引发异常时,使用UpdateModel()方法会直接抛出异常。

    4.8K40

    Entity Framework Core 2.0 入门

    看一下Sql: 这个过程一共分两步: 1 插入主表, 2,使用刚插入主表数据的Id, 插入子表数据. 2.为数据库中的数据添加导航属性....这时, 因为该数据是被context追踪的, 所以只需在它的导航属性添加新记录, 然后保存即可. 3.离线数据添加导航属性. 这时候就必须使用外键了. 预加载关联数据 Eager Loading....也就是查询的时候一次性把数据和其导航属性的数据一同查询出来. 看看SQL: 这个过程是分两步实现的, 首先查询了主表, 然后再查询的子表. 这样做的好处就是性能提升....预加载子表的子表: 可以使用ThenInclude方法, 这个可以老版本ef没有的....如果需要在方法外使用该结果, 那么可以使用dynamic, 或者建立一个对应的struct或者class. 使用关联导航属性过滤, 但是不加载它们. SQL: 这个比较简单.

    3.5K140

    Entity Framework Core 2.0 入门

    看一下Sql: 这个过程一共分两步: 1 插入主表, 2,使用刚插入主表数据的Id, 插入子表数据. 2.为数据库中的数据添加导航属性....这时, 因为该数据是被context追踪的, 所以只需在它的导航属性添加新记录, 然后保存即可. 3.离线数据添加导航属性. 这时候就必须使用外键了. 预加载关联数据 Eager Loading....也就是查询的时候一次性把数据和其导航属性的数据一同查询出来. 看看SQL: 这个过程是分两步实现的, 首先查询了主表, 然后再查询的子表. 这样做的好处就是性能提升....预加载子表的子表: 可以使用ThenInclude方法, 这个可以老版本ef没有的....如果需要在方法外使用该结果, 那么可以使用dynamic, 或者建立一个对应的struct或者class. 使用关联导航属性过滤, 但是不加载它们. SQL: 这个比较简单. 看sql一切就明白了.

    3.2K80

    .NET程序员必备的58个提高效率工具

    ASP.NET Fiddler:捕捉 HTTP 请求/响应以及模拟请求行为。 AutoMapper:对象到对象的映射。例如,该工具可用于映射实体对象到领域对象,而不是写手动映射代码。...MSMQ QueueExplorer 3.4:复制,移动或删除邮件,保存和加载,压力测试,查看和编辑完整的邮件主体(通过 .NET 序列化对象的特殊支持),以及更多可对 MSMQ 做的。 6....这可以与 Express 和 SQL Server 2005/2008 / 2008R2 / 2012/2014 的 non-Express 版本一起使用。...PAL:在性能日志读取,使用已知阈值分析。 sqlquerystress:用T-SQL 查询和程序的性能压力测试助攻。 10....文档 GhostDoc:GhostDoc 是一个 Visual Studio 扩展程序,自动生成类型、参数、名称及其他相关信息方法和属性的 XML 文档注释。

    4.1K60

    Entity Framework 基础知识走马观花

    例如:NavigationProperty 导航属性,因为T_Person表与T_Class、T_Message表都存在一对一或一对多的关系(即存在外键),因此在EF模型所生成的对象实体中,加入了外键所在实体的导航属性...Where方法执行的时候确定最终的SQL语句,只能返回一个DbQuery对象,当使用到这个DbQuery对象的时候,才会根据所有条件生成最终的SQL语句去查询数据库。   ...而在执行到最后一句时,才去数据库查询所对应的Class信息; ? 3.2 浅谈即时加载 所谓即时加载,就是在加载数据时就把该对象相关联的其它表的数据一起加载到内存对象中去。   ...3.3 使用Include提高查询效率   前面我们看到了延迟加载在EF中被广泛应用,但是延迟加载对于外键的加载也存在不足:那就是每次调用外键实体都会去查数据库。   ...参考资料 (1)陈少鑫,《EF贪婪加载与延迟加载的选择和使用》:http://www.cnblogs.com/chenshao/p/4169210.html (2)强子,《解析ASP.NET MVC开发方式之

    1.4K20

    GreenDao查询,Querying

    .你可以使用SQL组织你的查询语句,或者采用更好的方法,使用greenDao的QueryBuilder API.greenDao的查询也支持延迟加载结果,当结果集很大的时候,它会节省内存和提高性能. 1...SQL.使用它,相比只想代码不容易产生bug,它的语法在编译时候就会检查完.以greenDao为基础的代码生成的方法,使编译时的检查项能包括每一个属性的引用....如果查询时你期望返回多个结果,你可以调用list...中的一个方法: :--:|:--: list()|所有实体加载到内存.结果是一个典型的ArrayList.容易使用 listLazy()|实体根据需要加载到内存...QueryBuilder构造Query的参数一致. 5.原始查询 获取数据,有两种方法来执行原始的SQL.比较好的方法是使用QueryBuilder和WhereCondition.StringCondition...(例如上面的join关键字),你可以回到原始的查询语句或者原始查询语句的构造方法.他们允许传入原始SQL字符串,追加到SELECT + 实体列名后面.通过这种方法,你可以拼好任意WHERE和ORDER

    6700

    Hibernate面试题大全

    使用Hibernate框架就不用我们写很多繁琐的SQL语句。Hibernate实现了ORM,能够将对象映射成数据库表,从而简化我们的开发! Hibernate是如何延迟加载(懒加载)?...这里写图片描述 Hibernate的查询方式有几种 Hibernate的查询方式有几种 对象导航查询(objectcomposition) HQL查询 1、 属性查询 2、 参数查询、命名参数查询...所以它会立即执行Sql insert 使用 save() 方法保存持久化对象时,该方法返回该持久化对象的标识属性值(即对应记录的主键值); 使用 persist() 方法来保存持久化对象时,该方法没有任何返回值...为什么在Hibernate的实体类中要提供一个无参数的构造器这一点非常重要?...每个Hibernate实体类必须包含一个 无参数的构造器, 这是因为Hibernate框架要使用Reflection API,通过调用Class.newInstance()来创建这些实体类的实例。

    2K50

    新时期的.NET程序员学习路线图

    黑马程序员.Net+WindowsPhone课程 .Net中级技术 .Net基础加强高级 面向对象高级 委托/事件原理 反射高级 SQL基础 SQL基础 多表连接查询 存储过程 事务/触发器 ADO.NET...JQuery方法和属性 视频下载: .Net中级技术视频 ASP.NET开发 黑马Web服务器 多线程/套接字 多人聊天程序 Http协议 BS结构原理 黑马Web服务器 CSS+DIV ASP.NET...控件与页面对象 复杂控件 企业常用技术 缓存/缓存依赖 进程外Session 请求管道过滤器 页面生命周期详解 抽象工厂三层 参考教程: 黑马ASP.Net培训视频教程 框架及项目 ASP.Net...项目 门户网站CMS系统 博客管理系统 搜索引擎系统 办公自动化OA 网上购物商城 MVC3 EntityFramework Lambda Linq To EF 延迟加载 MVC3架构原理 深入Routing...控件模板 形变和转换 画刷 样式 数据绑定 MVVM模式 动画Storyboard Windows Phone SDK 手机开发技术体系 Task与选择器 独立存储 页面导航 SIP软键盘 高级控件

    1.8K10

    基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET平台开发指南 - 对象设计器使用帮助

    其组织结构为项目包含实体和模型两大类,模型存储数据对象的关系(目前不支持),实体存储数据对象的定义,实体可以选择按目录组织,即如果项目中的实体很多,为了视觉和组织上的方便,建立目录,并在目录中创建实体,...工作区        工作区是系统工作区域,工作区根据导航和菜单的不同选择与操作,将会加载不同的功能模块,用于完成必要的任务。...数据库连接参数用于从数据库生成数据对象时连接数据库服务器,目前支持SQL2000/2005/2008/Oracle数据库。...填写目录名称和说明后点解“确定”按钮,对话框关闭,新建的目录加载到导航栏,“取消”按钮放弃目录的添加。        注意:目录名称不能为空,也不能和现有的目录重名。...实体的属性集合由下面的表格中进行填写,增加新的属性/列,在*标记的行中直接进行写,删除一条记录时使用选中某一条,按下删除键即可。

    1.3K50

    浅谈MVC

    究其原因,个人以为是之前的人把MVC搞复杂了(例如ASP.net MVC),IT就是这样,技术越复杂就会越难被人理解接受,越不被人理解接受,自然就不会被大家推广使用。...Modal:对应在asp.net2.0中,数据模型也就是各个业务实体类对象,这个很好理解,特别是用SQL Server构建好数据库视图之后,可以直接利用.net的O-R Mapping技术Linq to...SQL将数据库对象映射为实体对象,非常方便快速。...在最近的那个asp.net项目中,我的所有业务实体对象都是这么生成的,总共有近50个。...大致分两类:一类是直接以表对象映射过来的实体模型,一类是以数据库视图对象映射过来的实体模型,相对而言,后一类更易于理解与使用,往往更贴近业务需求。

    95020

    跟我一起学mybatis框架Ⅰ

    2. sql 语句在代码中硬编码,如果要修改 sql 语句,就需要修改 java 代码,造成代码不易维护。 3. 查询操作时,需要手动将结果集中的数据封装到实体对象中。 4....增删改查操作需要参数时,需要手动将实体对象的数据设置到 sql 语句的占位符。  原始 JDBC 的操作问题解决方案 ​ 1.使用数据库连接池初始化连接资源。 将 sql 语句抽取到配置文件中。...mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。...ORM 对象关系映射,数据和实体对象的映射。 MyBatis 是一个优秀的基于 Java 的持久层框架,它内部封装了 JDBC。 二....调用流程 5.2 LOG4J的配置和使用 在日常开发过程中,排查问题时难免需要输出 MyBatis 真正执行的 SQL 语句、参数、结果等信息,我们就可以借助 LOG4J 的功能来实现执行信息的输出

    36730

    MyBatis从入门到精通(一)—MyBatis基础知识和快速入门

    ③查询操作时,需要手动将结果集中的数据手动封装到实体中。...插入操作时,需要手动将实体的数据设置到sql语句的占位符位置 应对上述问题给出的解决方案: ①使用数据库连接池初始化连接资源 ②将sql语句抽取到xml配置文件中 ③使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射...mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。...insert标签 在映射文件中使用parameterType属性指定要插入的数据类型 Sql语句中使用#{实体属性名}方式引用实体中的属性值 插入操作使用的API是sqlSession.insert(“...其中,数据源(dataSource)类型有三种: •UNPOOLED:这个数据源的实现只是每次被请求时打开和关闭连接。

    41920

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

    ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授权认证问题 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理 七天学会ASP.NET MVC...本节将使用SQL Server和EF(Entity Framework)创建相关的数据库及数据库访问层。 简述实体框架(EF) EF是一种ORM工具,ORM表示对象关联映射。...在RDMS中,对象称为表格和列对象,而在.net中(面向对象)称为类,对象以及属性。 任何数据驱动的应用实现的方式有两种: 1. 通过代码与数据库关联(称为数据访问层或数据逻辑层) 2....DbSet数据集是数据库方面的概念 ,指数据库中可以查询的实体的集合。当执行Linq 查询时,Dbset对象能够将查询内部转换,并触发数据库。...Model Binder会通过方法的元参数迭代,然后会和接收到参数名称做对比。如果匹配,则响应接收的数据,并分配给参数。

    5.3K100

    Hibernate检索1

    强大且易于使用的面向对象查询语言 HQL(Hibernate Query Language)。和Criteria查询。以及使用原生 SQL (native SQL)描述 Hibernate 查询。...核心技能部分​ 1.1 Hibernate检索 在Hibernate 中,检索对象的方式包括: (1)导航图:根据已经加载的对象,导航到其他对象。...例如,对于已经加载的Customer对象,调用它的getOrders().iterator()方法就可以导航到所有关联的Order对象,假如在关联级别使用了延迟加载检索策略,那么首次执行此方法时,Hibernate...1.4 属性查询 现在我们使用HQL可以轻松的查询到我们需要的对象,但在某些情况下,我们并不需要取得完整的实体对象,如在下拉列表中显示出版块的名称,或者在加载帖子列表的时候,我们只需要帖子的标题等信息...图4.1.11 子查询​ ​本章总结​ Ø Hibernate 中,检索对象的方式 n 导航图:根据已经加载的对象,导航到其他对象。 n OID:按照对象的OID来检索对象。

    8010
    领券