我正在设计一个相当复杂的托管网络应用程序,它需要支持多个彼此有效隔离的“团队”。例如,表People
、Areas
、Reports
等将包含由公司 A、B、C 和下线的团队填充的混合数据,并且公司 A 的用户已经登录,他应该只看到与公司 A. 我的计划是在和(几乎)所有其他类型之间创建关系,Team
并使用存储库来访问所有其他类型,并始终查询与登录人TeamId
匹配的TeamId
位置。
所以既然我想拥有
[ForeignKey("Team")]
public int TeamId { get; set; }
public virtual Team Team { get; set; }
在几乎每个类上,我都认为将它们放在抽象类中并继承这些属性可能会很好:
public abstract class OfTeam {
[ForeignKey("Team")]
public int TeamId { get; set; }
public virtual Team Team { get; set; }
}
public class Person : OfTeam {
[Key]
public int Id { get; set; }
public string Name { get; set; }
}
但是,我意识到这并不是继承的真正意义。所以我想知道
- 这甚至会起作用吗?
- 这是一个可怕的想法吗?