Bootstrap

ef执行原生sql语句_EF Core执行SQL语句

目录:

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语句查询的方法。

<

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;