2
我想在实体框架返回使用新FromSql
命令值,如果一切顺利的话1,如果发生错误7.我的存储过程返回值为0。实体框架7 FromSql存储过程返回值
使用FromSql
与DbSet
例如,我们可以做
_dbContext.ExampleEntity.FromSql('someSproc', 'param')
你将如何得到从这个0或1标返回值?
我想在实体框架返回使用新FromSql
命令值,如果一切顺利的话1,如果发生错误7.我的存储过程返回值为0。实体框架7 FromSql存储过程返回值
使用FromSql
与DbSet
例如,我们可以做
_dbContext.ExampleEntity.FromSql('someSproc', 'param')
你将如何得到从这个0或1标返回值?
貌似存储过程的支持是still on the backlog。
这里有一个例子扩展方法可以调用使用_dbContext.ExecuteStoredProcedure("someSproc", "param");
。
public static class DbContextExtension
{
public static int ExecuteStoredProcedure(this DbContext context, string name, string parameter)
{
var command = context.Database.GetDbConnection().CreateCommand();
command.CommandType = CommandType.StoredProcedure;
command.CommandText = name;
var param = command.CreateParameter();
param.ParameterName = "@p0";
param.Value = parameter;
command.Parameters.Add(param);
return (int)command.ExecuteScalar();
}
}
嗨斯塔福德,看起来当场对我的需要。问题,为了能够调用上面的扩展方法,您如何首先获取/实例化上下文? – mattpm
@mattpm取决于您的应用程序的设置。从这里开始; https://docs.microsoft.com/en-us/ef/core/miscellaneous/configuring-dbcontext –
这并没有为我工作 - 我得到“的ExecuteScalar需要一个开放和可用连接的连接的当前状态为关闭。”为了使其正常工作,我必须明确地打开连接,如下所示 - https://stackoverflow.com/a/39543702/432085。我通过ASP.Net Core API中的Startup.cs注入我的DbContext,并且我没有其他DbContext操作的问题。很想知道你是如何得到这个工作的。 – DanO