EntityFramework 执行SQL语句进行参数化查询代码示例
来源:互联网 发布:三菱fx2n pid编程手册 编辑:程序博客网 时间:2024/05/29 15:07
在我们用EntityFramework时,一般情况下我们是要将数据库表或对象添加到edmx文件中,以建立数据映射模型;从而进行后续的增删查改。但有时在做老系统维护或改造时,会发现老系统代码中有很长的拼装SQL语句,好多这个连接那个连接非常复杂(能有上千行之多啊,如在现在我们可能就用存储过程处理了,但碍于风格统一,客户限制等),这时去理清里面的关系,再将需用到的表添加大edmx中,再按照连接关系去用linq形式查询有时觉得真的好费时间。
其实呢,EntityFramework也是支持sql语句查询的,而且支持的也非常棒;就跟利用ADO.Net一样,写个sql语句,参数预定义好,传进去后执行就可得到返回的结果。更值得注意的一点是,还不需要将数据表拉进edmx文件中,把要移植的sql语句直接搬过去,参数传进去就可以了,也可谓省时省力;当然我们要根据实际需要自定义一下结果实体类。现把示例代码贴出来,时间考虑,直接贴的项目中的代码,需要的参照修改即可,不要纠结。
代码使用实现:
using (MySQLEntities opxEnity = new MySQLEntities()){ var sqlText = "SELECT cpm.ManagerID, usr.Email FROM componentmanagers cpm INNER JOIN users usr ON usr.UserID = cpm.ManagerID INNER JOIN components cmp ON cmp.ComponentID = cpm.ComponentID WHERE usr.Deleted = 0 AND cmp.Deleted = 0 AND cmp.Closed = 0 AND cmp.IsMicros = @IsMicros ORDER BY ManagerID"; var args = new DbParameter[] { new MySqlParameter {ParameterName = "IsMicros", Value = 1} }; var opsManagers = opxEnity.Database.SqlQuery<OpsManagersModel>(sqlText, args).Distinct(new FastPropertyComparer<OpsManagersModel>("ManagerID")).ToList(); //to do ...}
结果实体类:
class OpsManagersModel{ public string ManagerID { get; set; } public string Email { get; set; } }
可能有些人不认同此做法,这就要根据项目的实际情况做出选择了。
-----------------------------------------------------------------------------------------------------------------------------------------------------
感谢阅读,希能对你有益。
2015年10月9日
Kevin.Chen 蘇州.娄城
O(∩_∩)O~
- EntityFramework 执行SQL语句进行参数化查询代码示例
- EntityFramework执行SQL语句
- phoenix+hbase 执行sql语句代码示例
- sql语句结构之查询语句(内含代码示例)
- EntityFramework 4/5/6 中执行自定义SQL语句
- Sql Server 参数化查询示例
- 参数化sql查询语句,书写安全的SQL语句
- 参数化SQL语句 分页查询SQL语句
- 【SQL】拼接SQL语句-参数化查询-模糊查询
- SQL语句执行计划查询
- 查询正执行Sql语句
- SQL 查询语句执行顺序
- sql语句查询执行顺序
- sql语句查询执行顺序
- EntityFramework中使用sql语句
- sql查询语句中用like中用参数化查询
- hql语句命名参数查询示例
- Sql查询--sql语句的执行顺序
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- 7_13发现了一个小问题为啥在do_line函数里赋值语句在变量定义语句之前就会报错?
- openwrt默认开机启动ssh的方法
- Android反射机制实现与原理
- JS区分中英文字符的两种方法
- EntityFramework 执行SQL语句进行参数化查询代码示例
- 弱符号与强符号概念
- 坐飞机的流程
- 64位系统vs2010平台下实现C++与matlab R2014混合编程方法示例
- 数字电视专业术语--DTV名词扫盲
- phpstorm汉化
- 用css实现三角形效果
- mysql查询自增长序列
- nginx不浏览直接下载文件