无法在.Net COre中执行Raw Sql

时间:2018-02-09 13:19:56

标签: .net-core entity-framework-core

我正在使用Core 2.0使用实体框架。 我已经使用scaffold DBContext成功生成了上下文。 我有表EMployee的DBSet。 我需要执行SToredProcedure,它会给出员工列表。 我看不到.FromSql nor.ExecuteCommand选项。

我添加了EntityFrameworkCore.SqlServer(2.0.1),EntityFrameworkCore.SqlServer.Design(1.1.5),Microsoft.VisualStudio.Web.CodeGeneration.Design(2.0.2)和EntityFrameworkCore.Tools(2.0.1)但是没有失败。

请引导上述问题。

2 个答案:

答案 0 :(得分:2)

如果要使用EF Core执行行SQL,请尝试以下操作。

var employees = context.Employees
.FromSql("SELECT * FROM dbo.Employees")
// If you want to execute a stored procedure, then below
// .FromSql("EXECUTE {SP_NAME}")
.ToList();

但请注意,此处所述存在某些限制: https://docs.microsoft.com/en-us/ef/core/querying/raw-sql#limitations

答案 1 :(得分:1)

这是目前在.NET中执行Raw SQL的唯一方法:

MLOGIC(TEST):  Beginning execution.
SYMBOLGEN:  Macro variable VARIABLE resolves to Coop Fin TDC Real Telco
SYMBOLGEN:  Macro variable VARIABLE resolves to Coop Fin TDC Real Telco
MLOGIC(TEST):  %IF condition %sysfunc(prxmatch('Coop',"&variable.")) & %sysfunc(prxmatch('TDC',"&variable.")) is TRUE
MLOGIC(TEST):  %PUT i = 1
i = 1
MLOGIC(TEST):  Ending execution.

您也可以将它用于存储过程。