У меня есть класс Tenant
абстрактного типа UserProfile
. Я использую метод наследования по типу таблицы. Арендатор может представлять группу арендаторов. A TenantGroupMember
- одна из таких групп. Итак, 1 Tenant
может иметь ноль или много TenantGroupMember
.
Как эта ассоциация представлена с использованием подхода «таблица за типом»? Я подошел к этому следующим образом:
[Table("TenantGroupMember")]
public class TenantGroupMember
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int TenantGroupMemberId { get; set; }
// 1:many with Tenant - base UserProfile
public int UserProfileId { get; set; }
}
[Table("Tenant")]
public class Tenant : UserProfile
{
public string TenantAge { get; set; }
public string PersonalDescription { get; set; }
// 1:many with TenantGroupMember
public virtual ICollection<TenantGroupMember> TenantGroupMembers { get; set; }
}
Правильно ли я сделал FK в TenantGroupMember
из UserProfile
? Поскольку ICollection TenantGroupMembers
находится в Tenant
, будет ли EF знать, что TenantGroupMember
может быть связан только с Tenant
, а не с любыми другими производными классами UserProfile
?