繁体   English   中英

如何将IdentityUser设置为ForeignKey?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM