如何向我的用户添加其他功能 class

How can I add additional features to my User class

我正在做一个在线购物项目。我使用 JWT 进行身份验证。我的 User.cs class 是:

namespace Core.Entities.Concrete
{
    public class User:  IEntity 
    {
        public int ID { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
        public byte[] PasswordHash { get; set; }
        public byte[] PasswordSalt { get; set; }
        public bool Status { get; set; }
        /// <summary>
        /// A person can have multiple Orders
        /// </summary>
        public virtual ICollection<Order> Orders { get; set; } //*Could not be found Error*
        public User() => Orders = new List<Order>(); //*Could not be found Error*
    }
}

我想为我的用户添加订单功能 class,客户可以订购产品。但是 Usre.cs class 在不依赖于 Entities 层的核心层中(Order class inside)我该如何解决这个问题?

我不应该将核心层引用到实体层。

考虑使用依赖注入来分离 OrderUser

例如,我们可以创建一个名为 IOrder 的接口,它定义 Order.cs 具有的属性和方法,并且所需的方法和属性 User 应该能够访问。

然后我们可以将该依赖项注入 UI 层。

services.AddTransient<IOrder,Entities.Order>();

然后我们可以通过它的构造函数在用户 class 中注入该依赖关系,例如:

public class User : IEntity
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
    public byte[] PasswordHash { get; set; }
    public byte[] PasswordSalt { get; set; }
    public bool Status { get; set; }
    
    /// <summary>
    /// A person can have multiple Orders
    /// </summary>
    public virtual ICollection<IOrder> Orders { get; set; }

    public User(List<IOrder> Orders) // <-- automatically injected with most DI setups
    {
        this.Orders = Orders;
    }
}

编辑:
有关 依赖注入 是什么以及如何使用它的更多资源,请查看这些资源。 This one covers dependency injection ins ASP.NET in general, and this one 专门介绍实体框架中的依赖注入,即您标记为使用的内容。