zoukankan      html  css  js  c++  java
  • 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 

  • 相关阅读:
    TOJ5272: 逆矩阵
    TOJ4537: n阶行列式
    gym101532 2017 JUST Programming Contest 4.0
    Float(浮动)
    块级元素与行级元素
    MyBatis-Oracle生成主键,嵌套对象中的List增加
    MyBatis嵌套对象中的List查询
    dbcp properties
    Idea菜单字体大小调整
    DOM4J
  • 原文地址:https://www.cnblogs.com/sev7en/p/4022067.html
Copyright © 2011-2022 走看看