我在this tutorial关注帐户创建后添加个人资料照片。
该修改包含以下代码段,
Student student = db.Students.Include(s => s.Files).SingleOrDefault(s => s.ID == id);
在上面的示例中,它适用于表格调用Student
,在我的情况下,我想使用AspNetUser
表,但是我必须使用UserManger
功能,一旦我尝试{ {1}}一个文件然后在编译时弹出该错误。
但在我的情况下,我试图加入Include
或AspNetUser
所以要填充上传的图片。我需要在用户管理器中使用UserManager
代码
include
但随后出现以下错误
' ApplicationUserManager'不包含' Include'的定义 没有扩展方法'包含'接受第一个类型的参数 ' ApplicationUserManager'
如何忽略和包含文件
修改
这些是我在模型类
中所做的更改文件
var user = await UserManager.Include(s => s.Files).FindByIdAsync(userid);
文件路径
public class File
{
public int FileId { get; set; }
..
public virtual ApplicationUser UserManager { get; set; }
}
ApplicationUser
public class FilePath
{
public int FilePathId { get; set; }
..
public virtual ApplicationUser UserManager { get; set; }
}
AspNetUser
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)
{
....
}
}
然后尝试通过在PMC中键入以下内容将迁移添加到项目中:
public partial class AspNetUser
{
public AspNetUser()
{
..
}
....
public virtual ICollection<File> Files { get; set; }
public virtual ICollection<FilePath> FilePaths { get; set; }
}
add-migration File
然后在控制台中出现以下错误
在程序集中未找到迁移配置类型 &#39;项目名&#39 ;. (在Visual Studio中,您可以使用“启用 - 迁移” Package Manager控制台中的命令以添加迁移 配置)。
然后我在PMC中输入以下内容:
add-migration FilePaths
然后我在控制台中出现以下错误
创建DbModelBuilder或从创建的DbContext编写EDMX 不支持使用Database First或Model First。 EDMX只能是 从不使用现有的Code First DbContext获得 DbCompiledModel。
然后我尝试使用以下代码
迁移Enable-Migrations project_name.Models.sampleEntityFrameworkEntities
和Files
FilesPath
add-migration File
在控制台中获取错误
创建DbModelBuilder或从创建的DbContext编写EDMX 不支持使用Database First或Model First。 EDMX只能是 从不使用现有的Code First DbContext获得 DbCompiledModel。
答案 0 :(得分:0)
如果我理解正确,那么您正在尝试遵循指南但使用ASP.NET身份。 ASP.NET Identity是一个独特的系统,它有自己的类和DBContext。要向用户添加新字段,您需要修改ApplicationUser类。只需将您的属性添加到此类,并根据需要应用迁移。这将为AspNetUser添加一个新列。然后将您的字段添加到ViewModel(如果有)以及处理您的字段所需的其他逻辑。