首页 > 解决方案 > 我想获取单个数据库 SQL 字符串

问题描述

我对此有一个小问题:

readonly LoginMandant logon = new LoginMandant();
string query = "SELECT Name FROM tMandant WHERE Id_Mandant = " + userDetails.Id_Mandant + ";";

Session["MandantName"] = logon.Database.SqlQuery<string>(query).SingleOrDefaultAsync();

它返回:

System.Threading.Tasks.Task`1[System.String]

但为什么?我想要一个像“test”这样的字符串。

标签: c#asp.net-mvcmodel-view-controllerrazor

解决方案


您需要await类似任务的操作,即

Session["MandantName"] = await logon.Database.SqlQuery<string>(query).SingleOrDefaultAsync();

但是,这要求您的代码是async;如果不是,要么制作它async(但不是 async void),或者寻找 API 的同步版本。

您可能也应该查看参数;如图所示的代码非常危险。


推荐阅读