小编Bia*_*ity的帖子

如何在EF Core中向Identity用户添加外键?

假设我在EF生成的数据库中有一个Todo带有相应Todotable(DbSet<Todo>)的模型.该表将每行存储待办事项.每个用户(在ASP.NET Core Identity + IdentityServer应用程序中)将与多个待办事项相关联(一对多,用户可以有多个待办事项).

我这样做的方法是向模型添加一个UserId外键Todo,代表拥有待办事项的用户.

在使用ASP.NET核心标识证明的类时,如何使用EF Core?我的直觉是将以下内容添加到Todo类模型中:

public string UserId { get; set; }
[ForeignKey("UserId")]
public ApplicationUser User { get; set; }
Run Code Online (Sandbox Code Playgroud)

这使用ApplicationUser(ASP.NET Core Identity默认用户类模型)作为发现来填充UserId外键.

这是问题所在:当我跑步时Update-Database我得到一个错误!它说The entity type 'IdentityUserLogin<string>' requires a primary key to be defined..

浏览代码IdentityUserLogin,我可以看到它有一个UserId应该被视为主键的属性,对吧?

总之,以确保其作为主键注册,我加入这个代码ApplicationUserOnModelCreating方法:builder.Entity<ApplicationUser>().HasKey(u => u.Id);.我仍然得到同样的错误!不知道我在这里做错了什么:(.编辑:是的,我打电话给基类,这不是问题所在.

注意:我知道我可以为每个携带todo项目ID集合的用户添加一个字段,而不是使用外键,但我不确定这是否是这样做的好方法.对此问题的指导表示赞赏.

database asp.net entity-framework asp.net-web-api asp.net-core

7
推荐指数
1
解决办法
9086
查看次数

是否需要反向代理后面的HTTPS?

我有一个在nginx反向代理后面运行的API服务器。通过TLS保护对我的API服务器的所有请求非常重要,因为它可以处理敏感数据。

我已经设置nginx以使用TLS(LetsEncrypt),所以似乎还可以。但是,从nginx到我的API服务器的http请求仍然是不安全的请求(顺便说一下,这都是在docker容器之间发生的)。

在反向代理和API服务器之间也设置https的最佳实践吗?如果是这样,我该如何进行而不过度设计呢?

security ssl https nginx server

5
推荐指数
1
解决办法
1382
查看次数