首页 > 数据库技术 > 详细

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

时间:2014-10-13 14:23:00      阅读:803      评论:0      收藏:0      [点我收藏+]

前不久项目开发过程中,使用的是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逻辑提高查询效率)

原文:http://www.cnblogs.com/sev7en/p/4022067.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!