在MSDN中,他们展示了如何使用此示例实现EF TPT:
public abstract class BillingDetail
{
public int BillingDetailId { get; set; }
public string Owner { get; set; }
public string Number { get; set; }
}
[Table("BankAccounts")]
public class BankAccount : BillingDetail
{
public string BankName { get; set; }
public string Swift { get; set; }
}
[Table("CreditCards")]
public class CreditCard : BillingDetail
{
public int CardType { get; set; }
public string ExpiryMonth { get; set; }
public string ExpiryYear { get; set; }
}
public class InheritanceMappingContext : DbContext
{
public DbSet<BillingDetail> BillingDetails { get; set; }
}
关于(*)我有这个问题:
我可以在层次结构中为每个孩子设置一个DbSet吗?即:
public class InheritanceMappingContext : DbContext
{
public DbSet<BankAccount> BankAccount { get; set; }
public DbSet<CreditCard> CreditCards{ get; set; }
}
我问这个是因为我想要一个主要的父类,所有其他类都继承这个类,即:
public abstract class DatabaseItem
{
[Key]
public long DatabaseItemId { get; set; }
}
public User : DatabaseItem
{
...
}
public Picture : DatabaseItem
{
...
}
public Gallery : DatabaseItem
{
...
}
所以给定一个ID,我知道它只对应一件事。
在过去的其他项目中,我没有这样做,并使用了特定的ID:&#34; UserId&#34;,&#34; PictureId&#34;,&#34; GalleryId&#34;。
在这种情况下,我将只有一个DbSet?
DbSet<DatabaseItem> DatabaseItems