gpt4 book ai didi

c# - 同一数据库中的两个 IdentityDbContext

转载 作者:行者123 更新时间:2023-11-30 13:45:56 26 4
gpt4 key购买 nike

我有一个网络 API。我希望它有两种类型的用户。它们完全无关。

我如何管理它们的身份验证?

我不想将它们放在同一个表中并将它们的类型管理为角色,因为它们是不同的实体。一种用户供人类使用,另一种用户供服务使用。它们具有不同的类和属性。我想要两个 IdentityDbContext 之类的东西,但我想将所有东西都保存在同一个数据库中。你觉得可能吗?

最佳答案

我不确定这是否是一个好的做法,但您可以使用不同的模式,例如:

[dbo].UserProfile 和 [webapi].UserProfile

据我了解,您正在使用 ASP.NET MVC 并使用空项目附带的默认 IdentityDbContext。

它使用 CodeFirst 方法在您的数据库上创建表。您只需创建所需的另一个并将其配置为使用不同的架构。

编辑 - 示例

注意 [Table("UserProfile", Schema = "dbo")] 和 [Table("UserProfile", Schema = "webapi")]

这样 EF 会注意到您正在尝试从不同的表中获取数据。

[Table("UserProfile", Schema = "dbo")]
public class UserProfile
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
}

[Table("UserProfile", Schema = "webapi")]
public class UserProfileWebApi
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
}

如果你想更进一步,你可以为这两个类创建一个接口(interface)。但同样,我认为这不是一个好的做法,您应该只创建一个具有不同名称的表以避免混淆。

关于c# - 同一数据库中的两个 IdentityDbContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25043355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com