EntityFrameWork5.0简单使用
概要:
使用EntityFrameWork5.0执行存储过程,Sql语句(DDL/DML)以及一点关于优化性能的方面;
正文:
在myef.tt下会包含需要展示数据的存储过程(select)
模型浏览器如下,
1.EF如何调用存储过程:
Note:数据库的表对应的实体,以类对象表示,在EF容器下可以直接操作,比如db.UserAccount直接拿到UserAccount实体对象,存储过程,视图也是同样道理,也是可以通过EF上下文容器得到;
2.EF执行Sql语句:
Note:两种情况,一种是查询sql,一种是非查询sql;都是定义在上下文容器下的Database对象;其中SqlQuery<T>()方法支持泛型;
3.EF性能优化
<1>延迟加载与缓存机制
一般都是ToList()之后才会去执行sql,一般由Where(),Count(),Any()等操作后是生成sql语句,在运行到调用的时候才会去执行sql(或者手动ToList());
另外在同一个上下文容器下,如果重复查询数据,会有缓存机制来优化,不会再次发送sql去执行,而是从缓存中直接复用;
<2>不跟踪查询
当我们查询到数据后,上下文容器会将这些数据的state标识为unchanged来进行管理,如果接下来并需要再对查询到的数据进行保存更改删除等操作,可以用不跟踪查询,让上下文容器不再跟踪查询数据以提高性能;
4.面向存储过程编程
END!
时间: 2024-10-03 21:54:31