目录:
EF Core提供的执行SQL语句的方法
自己封装SqlQuery方法,执行SQL语句
一.EF Core提供的执行SQL语句的方法
基于原始SQL查询创建LINQ查询,FromSql方法的返回类型只有IQueryable。
SqlParameter parameter = new SqlParameter("Id", 1);
User user = context.Set("select * from User where Id=@Id", parameter).Single();
对数据库执行给定的SQL并返回受影响的行数。需要引用Microsoft.EntityFrameworkCore命名空间。
SqlParameter[] parameters = new []{
new SqlParameter("Id", 1),
new SqlParameter("Name", "zhansan")
};
context.Database.ExecuteSqlCommand("update User set Name=@Name where Id=@Id", parameters);
二.自己封装SqlQuery方法,执行SQL语句
但在EF Core(本篇文章使用的EF Core版本为2.2.1)提供的的执行SQL语句的方法发现许多问题,比如:
不支持返回特定的泛型类型的元素
执行SQL查询语句查询某张表时查询返回的字段必须是该表的所有字段
所以根据上述问题,需要自己封装执行Sql语句查询的方法。
<