首页 > 代码库 > EF中自编写SQL脚本查询结果(适用于复杂SQL逻辑提高查询效率)

EF中自编写SQL脚本查询结果(适用于复杂SQL逻辑提高查询效率)

前不久项目开发过程中,使用的是Entity Framework做数据处理。因为本人也不是对EF太有研究,只是会用而已,但是在一次需要查询的结果需要关联3、4个表来查询出来结果,并且对查询效率也有要求。但是个人觉得遇到这样的情况还是使用原始SQL语句来查询更为可控(或许EF中有更好的方法可以解决此类问题,但恕本人愚笨只想到了这种方法)。就又自己扩展出一个方法,用来专门查询自定义编写的SQL语句。代码如下:

 public List<T> ExecuteStoreQuery(string commandText, params object[] parameters)        {            using (var db = GetEntity())            {                var objectList = db.ExecuteStoreQuery<T>(commandText, parameters).ToList();                return objectList;            }        }

上段代码中db.ExecuteStoreQuery<T>()方法是EF中已经定义的方法,可见就是为这种情况预留的。

具体调用方法如下:

  public List<ClassInfo> GetClassInfoList()        {            const string sql = @"你的SQL";            //这边可以根据你SQL的需要,判断是否进行参数化查询            return this.ExecuteStoreQuery(sql);        }    

使用这种方法,你可以不必再使用EF模板自动帮你生成的Model,可以自定义Model,但查询的Sql结果中的字段必须在给定的类型中存在。

如果读者有什么更好的解决方案,欢迎沟通交流,共同进步~

END

注:如有转载或引用请注明出处 http://www.cnblogs.com/sev7en/p/4021994.html 

 

EF中自编写SQL脚本查询结果(适用于复杂SQL逻辑提高查询效率)