我有一个基于插件架构的 C# 应用程序。基本应用程序包括两个插件,一个用于身份验证,一个用于购买。
第一个包含用户表:
public class User
{
public Guid Id { get; set; } = new();
public string Email { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
}
第二个包含购买:
public class Purchase
{
public int Id { get; set; }
public Guid UserId { get; set; } = new();
public string ProductName { get; set; } = string.Empty;
}
这两个插件完全独立(是两个项目,互不访问),但是共享一个数据库。它们也没有共同的模型,它们是单独的解决方案*
问题在于购买插件存储了有关哪个用户购买了某物的信息(具有 UserId)。 是否可以在两个独立项目中创建这两个表之间的关系?或者也许我不应该建立关系?但有一个问题。如果我需要删除用户怎么办?存在另一个插件仍会存储与该用户关联的数据的风险。
也许还有其他解决方案?
“这两个插件是完全独立的”,但它们不是......
考虑到我发现总体要求(正如您简要描述的那样)非常合理,也就是说您确实需要允许插件依赖于其他插件。
一种简单但相对干净的方法是每个插件解决方案至少有两个项目,一个仅用于“数据”(数据类型,但真正需要的任何东西),由依赖插件引用。