C# net核心中的独立业务域

C# net核心中的独立业务域,c#,asp.net-core,entity-framework-core,asp.net-core-identity,C#,Asp.net Core,Entity Framework Core,Asp.net Core Identity,早上好-我有两个按业务需求映射的域: 客户 教练 我为每种类型创建了不同的模型-有: public class Client { [Key] public string ClientId { get; set; } public byte[] Avatar { get; set; } public string FirstName { get; set; } public string LastName { get; set; } publ

早上好-我有两个按业务需求映射的域:

  • 客户
  • 教练

我为每种类型创建了不同的模型-有:

public class Client
{
    [Key]
    public string ClientId { get; set; }

    public byte[] Avatar { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; } ...another properties

}
}



并添加到数据库集

public DbSet<Client> Clients { get; set; }
public DbSet<Trainer> Trainers { get; set; }


我在Identity.netCore和应用程序用户上花了很多时间,但没有任何东西让我了解如何解决这个问题

如果不了解
培训师
客户
之间的确切业务区别,我们就无法回答这个问题。他们做不同的事情吗?他们有不同的权限吗?它们是不同的桌子只是为了分开吗?您必须提供此信息和更多信息,以便我们向您提供知情的答案是-他们将来会有另一种行为和属性。他们之间的关系也很重要-培训师和客户之间存在多对多关系重要的问题他们应该有共同的逻辑-身份验证、通过id获取、创建等。好的,但重要的信息需要在问题中提及,你应该这样做。此外,身份验证应该不受客户/培训师的影响,要实现这一点,您需要这些客户/培训师具有
用户ID
(或类似)属性,并使用通用
用户
(或类似)classI使用的抽象类-用户进行身份验证,培训师和客户继承自此-所有三种型号都有用户ID-培训师附加有培训师ID,客户附加有客户ID。
public DbSet<Client> Clients { get; set; }
public DbSet<Trainer> Trainers { get; set; }
 public interface IUserService
 {
      Client Authenticate(string email, string password);
      Trainer Authenticate(string email, string password);
 }