你如何掌握EF的关键知识和实践经验?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3323个文字,预计阅读时间需要14分钟。
注意:以下内容如无特别说明,默认使用EF6.0版本,code first模式。
推荐使用MiniProfiler插件以优化性能,优先利用其工具。
我们使用EF和在大规模项目中显著提高了开发速度,不过随之而来的挑战是……
注意:以下内容如果没有特别申明,默认使用的EF6.0版本,codefirst模式。
推荐MiniProfiler插件工欲善其事,必先利其器。
我们使用EF和在很大程度提高了开发速度,不过随之带来的是很多性能低下的写法和生成不太高效的sql。
虽然我们可以使用SQL Server Profiler来监控执行的sql,不过个人觉得实属麻烦,每次需要打开、过滤、清除、关闭。
在这里强烈推荐一个插件MiniProfiler。实时监控页面请求对应执行的sql语句、执行时间。简单、方便、针对性强。
如图:(具体使用和介绍请移步)
数据准备新建实体:Score(成绩分数表)、Student(学生表)、Teacher(老师表)
后面会给出demo代码下载链接
foreach循环的陷进1.关于延迟加载
请看上图红框。为什么StudentId有值,而Studet为null?因为使用code first,需要设置导航属性为virtual,才会加载延迟加载数据。
2.关于在循环中访问导航属性的异常处理(接着上面,加上virtual后会报以下异常)
"已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。
本文共计3323个文字,预计阅读时间需要14分钟。
注意:以下内容如无特别说明,默认使用EF6.0版本,code first模式。
推荐使用MiniProfiler插件以优化性能,优先利用其工具。
我们使用EF和在大规模项目中显著提高了开发速度,不过随之而来的挑战是……
注意:以下内容如果没有特别申明,默认使用的EF6.0版本,codefirst模式。
推荐MiniProfiler插件工欲善其事,必先利其器。
我们使用EF和在很大程度提高了开发速度,不过随之带来的是很多性能低下的写法和生成不太高效的sql。
虽然我们可以使用SQL Server Profiler来监控执行的sql,不过个人觉得实属麻烦,每次需要打开、过滤、清除、关闭。
在这里强烈推荐一个插件MiniProfiler。实时监控页面请求对应执行的sql语句、执行时间。简单、方便、针对性强。
如图:(具体使用和介绍请移步)
数据准备新建实体:Score(成绩分数表)、Student(学生表)、Teacher(老师表)
后面会给出demo代码下载链接
foreach循环的陷进1.关于延迟加载
请看上图红框。为什么StudentId有值,而Studet为null?因为使用code first,需要设置导航属性为virtual,才会加载延迟加载数据。
2.关于在循环中访问导航属性的异常处理(接着上面,加上virtual后会报以下异常)
"已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。

