实体框架代码优先 - > tph - >来自基类的外键

时间:2013-11-18 21:29:01

标签: c# entity-framework code-first

我有一个带有一些基类的代码第一个项目。

然后我有另一个项目继承这些类,添加一些属性,然后生成数据库。

让我们假设我们有一个客户和一个地址

public class Customer
{
     [Key]
     public int ID { get; set; }

     [Required]
     [MaxLength(100)]
     public string FirstName { get; set; }
}


public class Address
{
     [Key]
     public int ID { get; set; }

     [Required]
     [MaxLength(100)]
     public string CityName { get; set; }

    [Required]
    public Customer Customer { get; set; }
}

您会注意到地址有一个客户的外键。 这一切都很好,但我想做的是继承客户(或使用部分类)来添加另一个属性。

我想让数据库拥有一个Address和Customer表,但实现项目应该能够添加:

public class Customer : BaseObjects.Customer
{
    [Required]
    public int PantSize { get; set; }
}

问题是,Base Address返回BaseObjects命名空间中的Customer,而不是此扩展的customer类类型。所以,当我说

  public DbSet<Customer> Customers { get; set; }

要么抱怨有两个具有相同简单名称(customer)的类,要么我将它们作为部分类并在基础DBContext中生成DBSet,它不包含新属性。

我该怎么做?

感谢, 詹姆斯

0 个答案:

没有答案