Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 首先是实体框架代码->;tph->;来自基类的外键_C#_Entity Framework_Code First - Fatal编程技术网

C# 首先是实体框架代码->;tph->;来自基类的外键

C# 首先是实体框架代码->;tph->;来自基类的外键,c#,entity-framework,code-first,C#,Entity Framework,Code First,我有一个带有一些基类的代码优先项目 然后我有另一个从这些类继承的项目,添加更多属性,然后生成DB 例如,假设我们有一个客户和一个地址: 您会注意到该地址有一个指向Customer的外键。 这一切都很好,但我想做的是从Customer继承(或使用分部类)来添加另一个属性 我希望数据库有一个地址和客户表,但实施项目应该能够添加: public class Customer : BaseObjects.Customer { [Required] public int PantSize

我有一个带有一些基类的代码优先项目

然后我有另一个从这些类继承的项目,添加更多属性,然后生成DB

例如,假设我们有一个客户和一个地址:

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

我希望数据库有一个地址和客户表,但实施项目应该能够添加:

public class Customer : BaseObjects.Customer
{
    [Required]
    public int PantSize { get; set; }
}
问题是,基址返回BaseObjects命名空间中的客户,而不是此扩展客户类类型。所以当我说

  public DbSet<Customer> Customers { get; set; }
公共数据库集客户{get;set;}
它要么抱怨有两个具有相同简单名称(customer)的类,要么如果我将它们设为分部类并在基本DBContext中生成DBSet,它就不包括新属性

我该怎么做

谢谢,
James

为了澄清,我希望能够有一个基本数据对象的类库,这些对象在多个网站上是通用的,然后每个网站用新的属性、表格等扩展这些对象,以便根据该网站进行更具体的使用。我希望能够生成一个基本DB,但也能为扩展代码库的自定义项目生成专门扩展的DB实现。请尝试将Customer重命名为CustomerExtended,或者始终按完整类型名称引用该类型,这不就是另一个名为CustomerExtended的表吗?地址仍将指向基本客户,而不是将所有数据填充到扩展字段中?我希望有一个带有扩展属性的单一Customer表,当地址加载Customer对象时会填充这些扩展属性。我使用baseObjects和Extensions。但它们都来自同一个集合。当名称相同而只有名称空间不同时,情况会变得很糟糕。回忆一下EF中内部的Obect/mode/store模型。因此,如果我从同一个程序集中执行,是否可以扩展基本客户,让另一个对象返回基本客户,但让它返回从db完全加载的所有扩展属性?
  public DbSet<Customer> Customers { get; set; }