一.直接执行SQL语句
通常来讲 EF 不用写SQL语句的 但是 在有些场合 比如对生成的SQL语句 觉得不满意 要做优化 或者做报表统计时 要写很变态的SQL语句
再或者 批量操作等 这个时候 使用ORM的弱点就显露了出来 但是 做为优秀的ORM框架 EF 是支持原生态的SQL的 这里面 提供了三种方法
1. DbSet.SqlQuery 有跟踪状态的查询
2. DbDatabase.SqlQuery 没有跟踪状态的查询
3. DbDatabase.SqlCommand 直接执行SQL语句 一般用来 批量 增删改
下面 让我们来看下使用方法
再上篇的公共资源库里 添加方法
public virtual IEnumerable<TEntity> GetWithRawSql(string query, params object[] parameters) { return dbSet.SqlQuery(query, parameters); } public virtual IEnumerable<TEntity> GetwhithdbSql(string query, params object[] parameters) { return context.Database.SqlQuery<TEntity>(query, parameters); }