小编drm*_*sst的帖子

EF Core 2 使用 OUTPUT 参数执行存储过程

为什么没有返回输出值?

使用 EF Core 2 (2.1.0-preview-final) 作为通过代码优先建模管理架构的平台,我想添加其他数据库对象,例如 SP。这本身就是一段旅程,但是这里主题下的挑战是使用 context.Database.ExecuteSqlCommandAsync() 执行 SP 并检索 OUTPUT 参数值。

这是成功执行 SP 的代码,但是永远不会返回输出值。你会认为设置参数的方向就足够了。

public async Task AddAsync(Models.Filename entity)
{
    SqlParameter name = new SqlParameter("@Name", entity.Name);
    SqlParameter idOut = new SqlParameter
    {
        ParameterName = "@Id",
        SqlDbType = System.Data.SqlDbType.BigInt,
        Direction = System.Data.ParameterDirection.Output
    };
    using (var db = new MetaDataDbContext())
    {
        await db.Database.ExecuteSqlCommandAsync("[dbo].[AddFilename] @Name, @Id", name, idOut);
    }
    entity.Id = Convert.ToInt64(idOut.Value);
}
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core

3
推荐指数
1
解决办法
5007
查看次数

标签 统计

c# ×1

entity-framework-core ×1