c# - 如何使用 ms 实体 CRUD api 控制器和存储过程检查用户是否存在于 sql db 上
问题描述
我正在使用 Visual Studio、.net 5、swagger 和 Entity Framework Core。
我正在尝试检查用户是否在 SQL Server 中创建了配置文件。我使用 MS Graph API 来获取用户的“UserID”。现在我想检查这个人以前是否使用过这个应用程序,所以我将这个“UserID”发送到我的实体框架 API 控制器。
在 API 中,我使用了执行 SQL 查询的“代码 1”(如下所示)。我想发回我的应用程序它不存在。我尝试过不同的东西。我不是在询问 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);
}
推荐阅读
- r - 如果它们具有相似的 ID,则从另一个数据帧向现有数据帧添加新列
- excel - Excel VBA 宏运行时 53 文件未找到
- reactjs - 如何让我的 React like 按钮在不喜欢时增加,然后在喜欢时减少?
- python - 如何使用多个小部件的 1 个函数从 Tkinter/Python 的弹出菜单中复制文本?
- java - Exo Player 是否可以在不剪辑的情况下动态播放 mp3 文件的范围?
- angularjs - 无法使用没有验证标签的 Angular Moment Picker 设置初始自定义日期
- angular - mat-select 在我点击它之前不会显示
- python-3.x - Pandas DataFrame 错误:ValueError:StringArray 需要一系列字符串或 pandas.NA
- reactjs - 如何解决 TypeError:this.state.person 未定义
- node.js - knex js查询多对多