C# 实体框架TPH创建多个ID列
我有以下资料:C# 实体框架TPH创建多个ID列,c#,sql,asp.net-mvc,entity-framework-6,C#,Sql,Asp.net Mvc,Entity Framework 6,我有以下资料: class Employee { [Key] public int EmployeeID {get;set;} public List<TimeSensitiveData> JobTitle {get;set;} public List<TimeSensitiveData> Department {get;set;} public List<TimeSensitiveData> OfficeLocation {get;set;} }
class Employee {
[Key]
public int EmployeeID {get;set;}
public List<TimeSensitiveData> JobTitle {get;set;}
public List<TimeSensitiveData> Department {get;set;}
public List<TimeSensitiveData> OfficeLocation {get;set;}
}
abstract class TimeSensitiveData {
[Key]
public int TimeSensitiveDataID {get;set;}
public string Value1 {get;set;}
public DateTime Date {get;set;}
}
class JobTitle : TimeSensitiveData {}
class Department : TimeSensitiveData {}
class OfficeLocation : TimeSensitiveData {}
我不知道为什么会这样,有什么想法吗
我是否应该使员工模型中的列表不是时间敏感的数据类型列表?它们应该是具体的类类型列表吗?[InverseProperty]部分修复了它您的实体还有其他流畅的配置吗?如果你用[Key]属性标记timesensitedataid列,它还会这样做吗?@DavidG是的,我实际上已经设置了[Key]属性,同样的问题,我会更新question@DavidG实际上,模型关闭了,让我更新一下
seed () {
List<TimeSeriesData> oflc = new List<TimeSeriesData>();
TimeSeriesData oflc2 = new OfficeLocation();
oflc2.Value1 = "New York";
oflc.Add(oflc2);
List<TimeSeriesData> dpt = new List<TimeSeriesData>();
TimeSeriesData dpt2 = new Department();
dpt2.Value1 = "New York";
dpt.Add(dpt2);
List<TimeSeriesData> jt = new List<TimeSeriesData>();
TimeSeriesData jt2 = new JobTitle();
jt2.Value1 = "New York";
jt.Add(jt2);
var Employees = new List<Employee> {
new Employee{JobTitle=jt,Department=dpt,OfficeLocation=oflc},
}
}
TimeSensitiveDataID Value1 Date Discriminator Employee_EmployeeID Employee_EmployeeID1 Employee_EmployeeID2
1 xx date JobTitle NULL NULL(or value) NULL
2
etc..
etc..