【发布时间】:2018-01-02 17:30:38
【问题描述】:
我正在尝试使用方法FromSql(...) 从dbcontext 获取输出值。
如果我在 SSMS 上执行它,它可以工作,但不能在 EF 核心中工作。
我的 SP 参数:
@totalItems VARCHAR(MAX) OUTPUT
为了便于阅读,我删除了其他参数并指出了问题所在。记录即将到来,但OUTPUT 参数始终为null。
Linq
IQeryable<T> = _context.Set<T>().FromSql("Sp_Todo @totalItems OUTPUT", // i also tried with OUT or without both Out/Output but no luck
new SqlParameter("@totalItems", SqlDbType.Varchar)
{ Direction = ParameterDirection.Output});
【问题讨论】:
-
您的数据库使用 VARCHAR,而 c# 查询使用 BigInt。
-
即使我把
SqlDbType.VarChar返回null。 -
尝试用 "string query=" 代替 "var query="
-
Ashu 查询不是字符串。是
IQeryable<T>你可以看_context.Set<T>() -
不是答案,但应该是
IQueryable,而不是IQeryable。此外,您可以使用 @ 来提及 cmets 中的人。例如,@Robin。
标签: c# sql sql-server linq entity-framework-core