如何向我的用户添加其他功能 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)我该如何解决这个问题?
我不应该将核心层引用到实体层。
考虑使用依赖注入来分离 Order
和 User
。
例如,我们可以创建一个名为 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 专门介绍实体框架中的依赖注入,即您标记为使用的内容。
我正在做一个在线购物项目。我使用 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)我该如何解决这个问题?
我不应该将核心层引用到实体层。
考虑使用依赖注入来分离 Order
和 User
。
例如,我们可以创建一个名为 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 专门介绍实体框架中的依赖注入,即您标记为使用的内容。