使用用户管理器编辑用户个人资料图像
本文关键字:用户 个人资料 图像 编辑 管理器 | 更新日期: 2023-09-27 18:31:13
我正在按照本教程在创建帐户后添加个人资料图片。
该编辑有以下代码片段,
Student student = db.Students.Include(s => s.Files).SingleOrDefault(s => s.ID == id);
在上面的例子中,它适用于表调用Student
在我的情况下我想使用AspNetUser
表,但是我必须使用UserManger
功能,一旦我尝试Include
文件,它就会在编译时弹出该错误。
但在我的场景中,我试图包含在AspNetUser
或UserManager
所以填充上传的图片。我需要在用户管理器中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.
然后我尝试使用以下代码迁移Files
和FilesPath
add-migration File
add-migration FilePaths
在控制台中获取错误
创建数据库模型生成器或从创建的数据库上下文编写 EDMX 不支持使用数据库优先或模型优先。EDMX 只能是 从不使用现有数据库创建的 Code First DbContext 获取 DbCompiledModel.
如果我理解正确,您正在尝试遵循指南,但使用 ASP.NET 身份。 ASP.NET Identity 是一个独特的系统,具有自己的类和 DBContext。为了向用户添加新字段,您需要修改 ApplicationUser 类。只需将属性添加到此类,并根据需要应用迁移即可。这将向 AspNetUser 添加一个新列。然后将字段添加到 ViewModel(如果有)以及处理字段所需的其他逻辑。