我如何检查用户是否存在于带有存储过程的ms实体CRUD api控制器的sqldb上



我使用的是Visual Studio、.net 5、swagger和Entity Framework Core。

我正在尝试检查用户是否已在SQL Server中创建了配置文件。我使用MSGraph API来获得;用户ID";用户的。现在我想检查这个人以前是否使用过这个应用程序,所以我发送了这个"用户ID";到我的实体框架API控制器。

在API;代码1";(见下文(,它执行SQL查询。我想向我的应用程序发回它不存在的消息。我尝试过不同的东西。我不是在问SQL查询。我在问API。它拒绝让我返回一个假的或任何东西。

如何更改代码片段#1以允许我向移动应用程序发送虚假消息?

代码片段#1

[HttpGet("GetUserexist/{userms}")]
// GET: api/Users/GetUseridms/
public async Task<ActionResult<IEnumerable<User>>> GetUserexist(string userms)
{
string StoredProc = "exec CheckIfUserExist " + "@UserID_MS = '" + userms + "'";
return await _context.Users.FromSqlRaw(StoredProc).ToArrayAsync();
} 

代码段#2(存储过程(

SELECT 
CASE 
WHEN EXISTS (SELECT * FROM [User]
WHERE UserId_MS = @UserId_MS)
THEN CAST(1 AS BIT)
ELSE CAST(0 AS BIT) 
END

如果其他人需要,我自己能做的最好的解决方案。

public async Task<ActionResult<IEnumerable<User>>> GetUsersMS(string userms)
{
string StoredProc = "exec FindUserIDAndUserID_MS " +
"@UserID_MS = '" + userms + "'";
var user = await _context.Users.FromSqlRaw(StoredProc).ToListAsync();
if (user.Count == 0)
{
return NotFound();
}
return Ok(user);
}

最新更新