我有一个抽象类UserProfile
,它有一个子类Tenant
,所以关系是 1:1 - 一个“用户”是一个“租户”。
这是在 1:1 的基础上实现 table-per-type 继承的正确方法吗?
[Table("UserProfile")]
public abstract class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
// ...
}
[Table("Tenant")]
public class Tenant : UserProfile
{
public string PersonalDescription { get; set; }
// ...
// Navigation property on dependant end
public virtual UserProfile UserProfile { get; set; }
}
我将导航属性放在关系的依赖端是否正确?或者它的结局是否重要?
我还需要放置一个类型为
Tenant
in 的导航属性UserProfile
吗?最后,我读到值得让模型中的每个属性
virtual
来帮助 EF 进行更改跟踪 - 这是必要的吗?