如何从.Net核心应用程序中的SQL语句获取标量值?
.Net核心控制台应用程序(EF核心2.0 / Sql服务器)中的以下代码。
var sql = _context.Set() .FromSql("select dbo.FunctionReturnVarchar({0});", id);
得到以下exception?
无法为“字符串”创建DbSet,因为此类型未包含在上下文的模型中。
这是一种没有定义具有字符串属性的类的方法吗?
.Set
适用于上下文支持的实体。
您可以尝试一种解决方法
DbCommand cmd = _context.Database.GetDbConnection().CreateCommand(); cmd.CommandText = "select dbo.FunctionReturnVarchar(@id)"; cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.VarChar) { Value = id }); var value = (string) await cmd.ExecuteScalarAsync();
在这种情况下,您需要的是带有绑定输出参数的ExecuteSqlCommand
方法:
var resultParameter = new SqlParameter("@result", SqlDbType.VarChar); resultParameter.Size = 2000; // some meaningfull value resultParameter.Direction = ParameterDirection.Output; _context.Database.ExecuteSqlCommand("set @result = FunctionReturnVarchar({0});", id, resultParameter); var result = resultParameter.Value as string;
- 在Entity Framework Core中使用两列的一对多关系
- .NET Core 1.0中的System.Environment
- 在没有Microsoft.Office.Interop的情况下,将.NET doc和docx格式转换为.NET Core中的PDF
- 在没有IOptions 的情况下从appsettings.json读取和使用设置?
- 在.Net Core 1.0中运行时编译和运行代码
- 无法读取dotnet核心中链接的appsettings.json文件的值
- 在ASP.NET Core Web API中接收文件和其他表单数据(基于边界的请求解析)
- 在C#类库中使用IConfiguration
- 在ASP.NET Core Web API中上载文件和JSON