C# ASP NET Core MVC如何通过用户ID外键在列表模板中显示SQL表中的数据

C# ASP NET Core MVC如何通过用户ID外键在列表模板中显示SQL表中的数据,c#,asp.net,asp.net-mvc,asp.net-core,C#,Asp.net,Asp.net Mvc,Asp.net Core,我有一个身份表,比如AspNetUsers和其他。我从AspNetUsers表中创建了具有外键UserID到Id的迁移文件,用于在具有登录用户Id的Files表中保存文件。但在我的FileManager视图中,我看到了来自Files表的所有文件,但我只需要显示来自AspNetUsers的具有UserID=Id的文件(我指的是具有登录用户Id的文件)。我怎么做 我想我需要在FileManager功能中编辑一些信息,但我对此没有信心。如果您需要更多的代码从控制器或其他文件在我的ASP.NET核心项目

我有一个身份表,比如AspNetUsers和其他。我从AspNetUsers表中创建了具有外键UserID到Id的迁移文件,用于在具有登录用户Id的Files表中保存文件。但在我的FileManager视图中,我看到了来自Files表的所有文件,但我只需要显示来自AspNetUsers的具有UserID=Id的文件(我指的是具有登录用户Id的文件)。我怎么做

我想我需要在FileManager功能中编辑一些信息,但我对此没有信心。如果您需要更多的代码从控制器或其他文件在我的ASP.NET核心项目,我可以得到它给你

此代码来自my
WorkSpaceController
,具有上载新文件和其他内容的其他功能,但此
FileManager
功能从var中的上下文获取数据,并显示在
FileManagerView
上:

private readonly TextCloudContext Context;

public IActionResult FileManager()
{
    var items = Context.Files.ToList();
    return View(items);
}
这是
TextCloudContext
code:

namespace TextCloud.Data
{
    public class TextCloudContext : IdentityDbContext<TextCloudUser>
    {
        public TextCloudContext(DbContextOptions<TextCloudContext> options) : base(options)
        {
        }

        public DbSet<File> Files { get; set; }

        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);
        }
    }
}
namespace TextCloud.Data
{
公共类TextCloudContext:IdentityDbContext
{
public TextCloudContext(DbContextOptions):基本(选项)
{
}
公共数据库集文件{get;set;}
模型创建时受保护的覆盖无效(ModelBuilder)
{
基于模型创建(生成器);
}
}
}
希望你们能帮助我,伙计们!此外,文件dbo具有引用AspNetUsers表中Id的UserId外键。我使用addmigration命令和updatedatabase创建Files表,所以它运行良好,并使用当前用户Id存储文件,但我需要仅为当前登录的用户在ListRazorView(FileManager.cshtml)中显示信息

在我的FileManager视图中,我看到了files表中的所有文件,但我只需要显示来自AspNetUsers的UserID=Id的文件(我指的是登录用户的Id)。我怎么做

为了达到上述要求,您可以尝试调用方法来获取用户id,然后根据检索到的用户id查询文件,如下所示

//get user id of current logged-in user 
var currentUserId = _userManager.GetUserId(User);

var items = Context.Files.Where(f => f.UserID == currentUserId).ToList();
return View(items);