![](/img/trans.png)
[英]How to use UserManager<IdentityUser> with UserStore<IdentityUser>?
[英]How to set IdentityUser as a ForeignKey?
这是我的课程简要介绍:
public class UploadFile
{
public int Id { get; set; }
public TinyBlog2User User { get; set; } //this user is extend from IdentityUser
public byte[] md5 { get; set; }
public string Uri { get; set; }
public string ThumbnialUri { get; set; }
}
然后,我上传一个文件,并将文件URL像这样保存到数据库:
UploadFile uploadedFile = new UploadFile()
{
md5 = md5Value,
Uri = fileBlob.Uri.ToString(),
User = currentUser,
ThumbnialUri = thumbnailBlob.Uri.ToString()
};
_dbContext.uploadFiles.Add(uploadedFile);
_dbContext.SaveChanges();
但是在我的uploadFile表的“ userId”列中始终为null。 我是ASP.NET Core的新手,您能告诉我我的代码出了什么问题吗? 非常感谢你!
在从IdentityUser扩展中写
List<UploadFile> UploadFile {get; set;}
并在上传文件中
public int UserId {get; set;}
在此键入用户表的id类型,属性名称应为TableName + Id
编写您的UploadFile
模型,如下所示:
public class UploadFile
{
public int Id { get; set; }
public string UserId { get; set; }
public byte[] md5 { get; set; }
public string Uri { get; set; }
public string ThumbnialUri { get; set; }
public ApplicationUser ApplicationUser { get; set; } //this user is extend from `IdentityUser`
}
然后在DbConext
配置中。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<UploadFile>()
.HasOne(uf => uf.ApplicationUser)
.WithMany()
.HasForeignKey(uf => uf.UserId);
}
现在运行全新的迁移!
并如下修改您的FileUpload方法代码:
UploadFile uploadedFile = new UploadFile()
{
md5 = md5Value,
Uri = fileBlob.Uri.ToString(),
UserId = currentUser.Id, // Here set the current logged in UserId
ThumbnialUri = thumbnailBlob.Uri.ToString()
};
_dbContext.uploadFiles.Add(uploadedFile);
_dbContext.SaveChanges();
注意:如果您需要如何获取当前登录的UserId
那么这里是
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.