.Net程序员面试题分享(EF/Sql篇)

您所在的位置:网站首页 以下关于筛选和查询的叙述中说法正确的是 .Net程序员面试题分享(EF/Sql篇)

.Net程序员面试题分享(EF/Sql篇)

2024-07-15 08:53| 来源: 网络整理| 查看: 265

1、列举出你知道的ORM框架?

答:dapper EntityFramework、 EJB、Hibernate、IBATIS、TopLink、OJB。

2、描述EF的几种开发模式。

答: 共三种,但是CodeFirst有一种特殊的; CodeFirstFromDB,代码先行,但是实体来时来自于数据库! CodeFirst 领域设计时先定义实体类,用实体类生成数据库 DbFirst 从数据库生成实体类 Model First 使用Visual Studio实体设计器,设计ER,同时生成Entity类DB

3、如何如何获取EF生成的Sql脚本?

答:1.可以调试起来通过SqlServerProfiler 来获取Sql 2.EF Dbcontext 注册日志事件输出日志查看Sql

4、请说明在哪些类型额项目中你会选择EF? 为什么?

答:这个要结合EF的特点来说:EF主要是以面向对象的思想来做数据库数据操作,对Sql语句能力没什么要求,开发使用效率高!便于上手,一般来说,使用EF框架,肯定会比直接使用ADO.NET,消耗的时间多一些。 所以在一般企业级开发,管理型系统,对数据性能要求不是特别高的情况下,优先选择EF,这样可以大大的推进开发效率!如果像一些互联网项目中,对性能要求精度很高!可以另外做技术选型,选择原生ADO.Net;

5、如何让EF支持事务? 答: EF中操作SaveChange本就是带事务的,一般在做增删改查的时候,只有在SaveChange以后才能提交到数据库中去的!同时也可以使用Windows系统提供的事务!可以实现一个跨数据的事务的!

5、请说明EF中映射实体对象的几种状态?

答: Detached:该实体未由上下文跟踪。刚使用新运算符或某个 System.Data.Entity.DbSet Create 方法创建实体后,实体就处于此状态。 Unchanged:实体将由上下文跟踪并存在于数据库中,其属性值与数据库中的值相同。 Added:实体将由上下文跟踪,但是在数据库中还不存在。 Deleted:实体将由上下文跟踪并存在于数据库中,但是已被标记为在下次调用 SaveChanges 时从数据库中删除。 Modified:实体将由上下文跟踪并存在于数据库中,已修改其中的一些或所有属性值。

6、请说明在EF中生成的映射实体中有哪些验证特性?

答:Required:不能为空 StringLength 长度

7、如果实体名称和数据库表名不一致,该如何处理?

答:实体名称和数据库表名称不一致:可以通过使用TableAttribute 特性;

8、请说明使用EF如何实现级联删除? 答:级联删除需要数据库的配合,在映射实体中配置主外键关系,然后在数据库中设置操作为级联删除即可!

9、什么叫做SQL注入,如何防止?请举例说明。 答:利用sql关键字对网站进行攻击。过滤关键字’等

10、 浅谈EF的延迟加载。 答:即当我们需要用到的时候才进行加载(读取)。当我们希望浏览某条订单信息的时候,才显示其对应的订单详细记录时,我们希望使用延迟加载来实现,这样不仅加快的了 读取的效率,同时也避免加载不需要的数据。延迟加载通常用于foreach循环读取数据时。那么我们在定义Model的时候,需要在属性前面添加virtual关键字。 如果我们想要禁止使用延迟加载,那么最好的方法是在DbContext类的构造方法中声明。

选择题:

1.在SQL Server中,( )语句是用来创建表的。 (选择一项) A:CREATE TABLE 表名 B:DROP TABLE 表名 C:ALTER TABLE 表名 D:DELETE TABLE 表名

2.在SQL Server中,以下用于更改数据库名称的存储过程是( )。(选择一项) A:sp_renamedatabase B:sp_alterdb C:sp_renamedb D:sp_helpdb

3.在SQL Server中,关于视图的说法不正确的是( )。 (选择一项) A:视图是一种虚拟表,通常是作为执行查询的结果而创建的 B:使用CREATE VIEW语句创建视图 C:使用SELECT语句查看视图的查询结果 D:定义视图的查询可以基于一个或多个表,但不可以基于其他视图

4.在SQL Server中,下面( )语句用于提交事务。 (选择一项) A:COMMIT TRANSACTION B:BEGIN TRANSACTION C:ROLLBACK TRANSACTION D:SAVE TRANSACTION

5.在SQL Server中,关于存储过程的说法不正确的是( )。(选择一项) A:存储过程一般分为系统存储过程、扩展存储过程和用户自定义存储过程 B:存储过程是在数据库管理系统中保存的、预先编译的并能实现某种功能的SQL程序 C:存储过程帮助实现了模块化编程 D:用户在创建自定义存储过程后不能再被修改

6.在SQL Server中,使用if…else语句时,( )可以作为条件表达式。(选择一项) A:true B:false C:1>0 D:1==1

7.关于SQL Server中的视图,以下说法错误的是( )。 (选择一项) A:视图是一种虚拟的表,通常是作为执行查询的结果而创建的 B:视图充当着对查询中指定的表的筛选器 C:更改视图中的数据,原始表中的数据不会随之更改 D:视图的结构和数据是建立在对表的查询基础上的

8.如下图所示,查询参加考试学员的姓名、学号、家庭地址,其中错误的T-SQL语句为( )。 (选择一项)

A:select stuname as 姓名,stuInfo.stuId as 学号,stuaddress as 家庭地址from stuInfo inner join stuMarks on stuInfo.stuId=stuMarks.stuId

B:select stuname as 姓名,stuMarks.stuId as 学号,stuaddress as 家庭地址from stuMarks left join stuInfo on stuMarks.stuId=stuInfo.stuId

C:select stuname as 姓名,stuid as 学号,stuaddress as 家庭地址from stuInfo where stuid in (select * from stuMarks)

D:select stuname as 姓名,stuMarks.stuId as 学号,stuaddress as 家庭地址from stuInfo right join stuMarks on stuMarks.stuId=stuInfo.stuId

9.SQL SERVER中,在绘制E-R图时,菱形和椭圆分别表示( )。 (选择一项) A:属性、实体 B:实体、关系集 C:关系集、属性 D:实体、属性

10.在T-SQL中给变量赋值可以用( )。 (选择一项) A:给局部变量赋值用set,给全局变量赋值用select B:给局部变量赋值用set或select,不能给全局变量赋值 C:给局部变量赋值用select,给全局变量赋值用set D:给局部变量赋值用set或select,给全局变量赋值用系统存储过程sp_setvalue

11.在SQL Server中,下列关于索引的描述错误的是( )。(选择一项) A:一张表中主键索引最多只能有一个 B:一张表中可以有多个非聚集索引 C:应该在字节数大的列上建立索引 D:索引应该创建在经常用作查询的列 • 12.在SQL Server中,索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的( )速度。 (选择一项) A:插入 B:修改 C:查询 D:删除

13.下面所示的T-SQL语句使用内连接实现多表查询,查询返回多行数据: SELECT SName FORM Students INNER JOIN Score on Students.SCode = Score.StudentID WHERE Score>=60 选项中可以替换上述语句实现该查询的语句是( )。 (选择一项)

A:SELECT SName from Students WHERE SCode = (SELECT StudentID from Score WHERE Score>=60)

B:SELECT SName from Students WHERE SCode IN (SELECT StudentID from Score WHERE Score>=60)

C:SELECT SName from Students WHERE SCode NOT IN (SELECT StudentID from Score WHERE Score、=、80) begin select top 10 * from Book order by BookPrice desc end else begin select top 10 * from Book order by BookPrice asc end A:如果图书的平均价格高于80,则查出价格最高的10本图书信息 B:如果图书的平均价格高于80,则查出价格最低的10本图书信息 C:如果图书的最高价格高于80,则查出价格最高的10本图书信息 D:如果图书的最高价格高于80,则查出价格最低的10本图书信息

39.在SQL Server中,运行以下T-SQL语句,输出的结果是( )。(选择一项) CREATE PROC usp_selectStu @stuNo varchar(8)=NULL AS IF @stuNo IS NULL Begin Print ‘请输入学号’ RETURN End SELECT * FROM stuInfo WHERE stuNo=@stuNo GO EXEC usp_selectStu

A:编译错误 B:调用存储过程usp_ selectStu出错 C:显示空的学员信息记录集 D:显示“请输入学号”

40.在SQL Server中,以下关于常用的系统存储过程的说法正确的是( )。(选择一项) A:sp_databases用于列出数据库服务器中的所有数据库信息 B:sp_helpconstraint用于查看某个表的索引 C:sp_procedures用于显示存储过程的列表 D:sp_tables用于查看系统中存在的表的个数



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3