首页 > 其他分享 >5 .NET Core笔试题

5 .NET Core笔试题

时间:2023-02-22 09:22:34浏览次数:33  
标签:Core 数据库 笔试 DbContext EFCore NET 导航 SaveChanges

1.说说你知道的ORM框架?
2.请问对EFCore有了解吗?
3.说说EFCore查询的性能调优小技巧?
4.EFCore 如果通过数据生成实体和DbContext?
5.说说对SaveChanges的理解?
6.说说对EFCore中EntityState的理解。?
7.说说什么是导航属性和引用属性;
8.说说EFCore7 中有哪些新功能 ?
9.EFCore有几种配置映射方式?
10.ASP.NET Core管道里面的Map拓展有什么作用?
11.如何从.NET Framewok升级到ASP.NET Core7?


1.说说你知道的ORM框架?

  • EntityFramework6
  • EntityFrameworkCore
  • SqlSugar
  • FreeSql
  • DosORM 等等~~

  • 2.请问对EFCore有了解吗?

    有了解。
    Entity Framework Core是适用于.NET的新式物件资料库对应程式。其支援LINQ查询、变更追踪、更新 以及结构描述移转。
    EF Core透过[资料库提供者外挂程式模型]来搭配使用SQL Server/SQL Azure、SQLite、Azure Cosmos DB、MySQL、PostgreSQL及更多资料库。

    3..说说EFCore查询的性能调优小技巧?

    如果说查询出来的数据,只是做展示,不做增删改查,可以在查询的时候,增加AsNoTracking()方法, 可以提高性能,可以避免在内存中存在副本;
    建议在查询的时候,多使用Find()方法,会有限走内存缓存,如果内存已经存在,就不会去数据库中去操 查询数据;

    4.EFCore 如果通过数据生成实体和DbContext?

    步骤如下: 1.Nuget引入 如下程序集
    Install-Package Microsoft.EntityFrameworkCore 
    Install-Package Microsoft.EntityFrameworkCore.SqlServer 
    Install-Package Microsoft.EntityFrameworkCore.Tools
    

    2.在Vs中打开工具--nuget包管理器--程序包管理器控制台:命令执行:

    Scaffold-DbContext "Data Source=DESKTOP-63QE7M1;Initial Catalog=ZhaoxiEduDataBase;User ID=sa;Password=sa123" Microsoft.EntityFrameworkCore.SqlServer  -OutputDir  Entity -Force Context ZhaoxiDbContext  -ContextDir /
    
    //注:命令参数应用如下:
    命令参数: 
    -OutputDir *** 实体文件所存放的文件目录 
    -ContextDir *** DbContext文件存放的目录 
    -Context *** DbContext文件名 
    -Schemas *** 需要生成实体数据的数据表所在的模式 
    -Tables *** 需要生成实体数据的数据表的集合 
    -DataAnnotations 
    -UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持) 
    -Force 强制执行,重写已经存在的实体文件
    
    

    5.说说对SaveChanges的理解。 ?

    SaveChanges是以Context为维度的一次提交,对于数据库操作的一切动作,只要是在同一个Context实 例,所有的操作,在调用SaveChanges方法后,统一体现到数据库中去;

    6.说说对EFCore中EntityState的理解?

    因为EFCore对于数据库的所有操作都是通过上下文DbContext来完成的,且是通过SaveChanges方法统 一落实到数据库中去的;
    EntityState是EFCore 在对数据库操作增删改的时候,记录当前被操作的数据对 象和Context的关系,针对与不同的操作,对应的一个状态信息,一共五种状态; 一共五种:
  • Detached = 0, 当前对象和context没有任何关系,没有被上下文跟踪
  • Unchanged=1, 当前对象被context跟踪,数据没有做任何修改
  • Deleted=2, 当前对象被context跟踪,且标记是数据删除,调用SaveChanges后将会从数据中删 除;
  • Modified=3, 当前对象被context跟踪,且有属性数据被修改过,调用SaveChanges后将会从数据中 修改;
  • Added=4 当前对象被context跟踪,且数据并没有存在数据库中,调用SaveChanges后将会新增 到数据库中去;

  • 7.说说什么是导航属性和引用属性?

    实体框架 中的导航属性提供了一种在两个实体类型之间导航关联的方法。 导航属性在概念模型中由 NavigationProperty 元素 (CSDL) 定义。 针对对象参与到其中的每个关系,各对象均可以具有导航属性。 使用导航属性,您可以在两个方向上导航和管理关系,如果重数为一或者零或一,则返回 EntityReference,或者如果重数为多个,则返回 EntityCollection。 也可以选择单向导航,这种情况下 可以删除导航属性。

    8.说说EFCore7 中有哪些新功能?

  • JSON资料行
  • 查询JSON资料行
  • ExecuteUpdate 和 ExecuteDelete (大量更新)
  • 更快速的 SaveChanges

  • 9.EFCore有几种配置映射方式?

    两种:
    1.特性映射
    2.通过DbContext中的 OnModelCreating 方法来配置映射;

    10.ASP.NET Core管道里面的Map拓展有什么作用?

    可以针对不同的路径添加不同的中间件。

    12.如何从.NET Framewok升级到ASP.NET Core7?

    没有办法直接升级,因为是两个完全不相同的平台,但是C#语法差不多。
    如果要升级,需要考虑的要点如下:
    1、平台更换
    2、依赖框架的变化,需要和之前的框架做对比。
    3、新平台对于一些新写法尝试Option模式等等

    标签:Core,数据库,笔试,DbContext,EFCore,NET,导航,SaveChanges
    From: https://www.cnblogs.com/zhendayong/p/17141214.html

    相关文章

    • aspnetcore 原生 DI 实现基于 key 的服务获取
      你可能想通过一个字符串或者其他的类型来获取一个具体的服务实现,那么在aspnetcore原生的MSDI中,如何实现呢?本文将介绍如何通过自定义工厂来实现。我们现在恰好有基于J......
    • aspnetcore 原生 DI 实现基于 key 的服务获取
      你可能想通过一个字符串或者其他的类型来获取一个具体的服务实现,那么在aspnetcore原生的MSDI中,如何实现呢?本文将介绍如何通过自定义工厂来实现。我们现在恰好有基于J......
    • aspnetcore 原生 DI 实现基于 key 的服务获取
      你可能想通过一个字符串或者其他的类型来获取一个具体的服务实现,那么在aspnetcore原生的MSDI中,如何实现呢?本文将介绍如何通过自定义工厂来实现。我们现在恰好有基于J......
    • aspnetcore 原生 DI 实现基于 key 的服务获取
      你可能想通过一个字符串或者其他的类型来获取一个具体的服务实现,那么在aspnetcore原生的MSDI中,如何实现呢?本文将介绍如何通过自定义工厂来实现。我们现在恰好有基于J......
    • aspnetcore 原生 DI 实现基于 key 的服务获取
      你可能想通过一个字符串或者其他的类型来获取一个具体的服务实现,那么在aspnetcore原生的MSDI中,如何实现呢?本文将介绍如何通过自定义工厂来实现。我们现在恰好有基于J......
    • aspnetcore 原生 DI 实现基于 key 的服务获取
      你可能想通过一个字符串或者其他的类型来获取一个具体的服务实现,那么在aspnetcore原生的MSDI中,如何实现呢?本文将介绍如何通过自定义工厂来实现。我们现在恰好有基于J......
    • .NET 8 预览版 1:NativeAOT 升级和新的Blazor United
      .NET团队今天在官方博客上发布了.NET8的第一个预览版,.NET8是一个长期支持(LTS)版本[1],.NET的版本包括产品、库、运行时和工具,是Microsoft内部和外部多个团队之间的......
    • 03. Kubernetes - 集群初始化配置
      集群准备生产环境服务器规划:但是由于资源有限,本次环境只有8台CentOS7.9的虚拟机,具体规划如下:主机IP系统配置初始化安装服务ops192.168.2.40CentOS......
    • #yyds干货盘点#【愚公系列】2023年02月 .NET/C#知识点-List对象去重的方法总结
      前言数组去重其实是个很常见的面试题,比如在数据分析中,有时候因为一些原因会有重复的记录,因此需要去重。如果重复的那些行是每一列懂相同的,删除多余的行只保留相同行中的一......
    • kubernetes常用节点问题排查手段
      1、ssh登录到node节点2、查看日志1)针对systemd拉起的服务journalctl-afukubelet-S“2019-08-2615:00:00”-uunit,对应的systemd拉起的组件,如kubelet-ffollow,跟......