5 .NET Core笔试题

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模式等等
    posted @ 2023-02-22 09:13  郑大勇  阅读(422)  评论(0编辑  收藏  举报