如何使用OnGetAsync方法中的Identity UserId向数据库查询条目

问题描述 投票:0回答:1

所以我有一个目前正在使用最新版本的EF Core,ASP.NET,ASP.NET Identity等开发的Razor页面Web应用程序>]

[我想做的是使用我的Razor页面之一的OnGetAsync方法获取当前登录用户,但我也只想检索由已登录用户创建的最新数据条目,以与我的Razor页面一起显示.cshtml文件。

我已经尝试实现在stackoverflow和其他地方找到的UserManager技术,但是我在代码行中不断遇到以下2个错误,在该行中,我将登录用户与相关数据库实体表的userid列进行比较:

使用以下代码设置

public async Task<IActionResult> OnGetAsync()
    {
        var userId = await _userManager.GetUserAsync(User);
        string UserId = Convert.ToString(userId);


        if (UserId == null)
        {
            return NotFound();
        }

        ForecastCinema = await _context.ForecastsCinema
            .Where(f => f.UserId == userId);
    }

“运算符'=='不能应用于类型为'string'和'AppUser'”的操作数。

AppUser是我的数据库中用于.Net Identity的User表的名称

并且使用另一种类型的代码格式,下面是其他错误

public async Task<IActionResult> OnGetAsync()
    {
        var userId = await _userManager.GetUserAsync(User);
        string UserId = Convert.ToString(userId);


        if (UserId == null)
        {
            return NotFound();
        }

        ForecastCinema = await _context.ForecastsCinema
            .Where(f => f.UserId == UserId);
    }

“ IQueryable不包含'GetAwaiter'的定义,找不到可以接受的扩展方法'GetAwaiter'接受类型为'IQueryable的第一个参数(您是否缺少using指令或程序集引用?)”

有人可以请请帮助我看看这里发生了什么吗?我尝试将UserManager声明“转换”为字符串,但没有成功,这是行不通的。我在下面附加了有问题的方法的代码以供参考。在此先感谢您对编码人员的帮助和见解:)

所以我有一个Razor页面Web应用程序,我目前正在使用最新版本的EF Core,ASP.NET,ASP.NET Identity等进行开发。我想做的是使用来登录当前的User。 ..

c# asp.net-identity razor-pages ef-core-3.1 razor-pages-crud
1个回答
0
投票

“运算符'=='不能应用于类型为'string'和'AppUser'的操作数”

© www.soinside.com 2019 - 2024. All rights reserved.