使用用户管理器编辑用户个人资料图像

本文关键字:用户 个人资料 图像 编辑 管理器 | 更新日期: 2023-09-27 18:31:13

我正在按照本教程在创建帐户后添加个人资料图片。

该编辑有以下代码片段,

Student student = db.Students.Include(s => s.Files).SingleOrDefault(s => s.ID == id);

在上面的例子中,它适用于表调用Student在我的情况下我想使用AspNetUser表,但是我必须使用UserManger功能,一旦我尝试Include文件,它就会在编译时弹出该错误。

但在我的场景中,我试图包含在AspNetUserUserManager

所以填充上传的图片。我需要在用户管理器中include以下代码

var user = await UserManager.Include(s => s.Files).FindByIdAsync(userid);

但随后出现以下错误

"

应用程序用户管理器"不包含"包含"的定义 并且没有扩展方法"包含"接受类型的第一个参数 "应用程序用户管理器"

如何忽略和包含文件

编辑:

这些是我在模型类中所做的更改

文件

public class File
{
    public int FileId { get; set; }
    ..
    public virtual ApplicationUser UserManager { get; set; }
}

文件路径

public class FilePath
{
    public int FilePathId { get; set; }
    ..
    public virtual ApplicationUser UserManager { get; set; }
}

应用程序用户

public class ApplicationUser : IdentityUser
{
        ....
        public virtual ICollection<File> Files { get; set; }
        public virtual ICollection<FilePath> FilePaths { get; set; }
    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {
       ....
    }
}

AspNetUser

public partial class AspNetUser
{
    public AspNetUser()
    {
       ..
    }
    ....
    public virtual ICollection<File> Files { get; set; }
    public virtual ICollection<FilePath> FilePaths { get; set; }
}

然后尝试通过在 PMC 中键入以下内容来将迁移添加到项目中:

add-migration File

add-migration FilePaths

然后在控制台中收到以下错误

在程序集中找不到迁移配置类型 "Project_Name"。(在Visual Studio中,您可以使用Enable-Migrations 命令从包管理器控制台添加迁移 配置)。


然后我在 PMC 中键入以下内容:

Enable-Migrations project_name.Models.sampleEntityFrameworkEntities

然后我在控制台中收到以下错误

创建数据库模型生成器或从创建的数据库上下文编写 EDMX 不支持使用数据库优先或模型优先。EDMX 只能是 从不使用现有数据库创建的 Code First DbContext 获取 DbCompiledModel.


然后我尝试使用以下代码迁移FilesFilesPath

add-migration File

add-migration FilePaths

在控制台中获取错误

创建数据库模型生成器或从创建的数据库上下文编写 EDMX 不支持使用数据库优先或模型优先。EDMX 只能是 从不使用现有数据库创建的 Code First DbContext 获取 DbCompiledModel.

使用用户管理器编辑用户个人资料图像

如果我理解正确,您正在尝试遵循指南,但使用 ASP.NET 身份。 ASP.NET Identity 是一个独特的系统,具有自己的类和 DBContext。为了向用户添加新字段,您需要修改 ApplicationUser 类。只需将属性添加到此类,并根据需要应用迁移即可。这将向 AspNetUser 添加一个新列。然后将字段添加到 ViewModel(如果有)以及处理字段所需的其他逻辑。