在我的模型中,我有一个[Customer]表,其自我关联为:
1 [客户]可能有1个[赞助商],赞助商是客户。
在EF 6中,我想知道是否可以将实体客户分成两个独立的实体[客户]和[赞助商],并为它们分配相同的表格?
由于
答案 0 :(得分:0)
您可以继承实体以使别名考虑此示例:
public class Person
{
public int ID {get;set;}
// your shared properties here
}
public class Customer: Person
{
// additional properties such as
public virtual Sponsor Sponsor {get;set;}
}
public class Sponsor : Person
{
// this could be have own properties or not
}
现在你的DbContext
可能是这样的:
public class MyDbContext:DbContext
{
public IDbSet<Person> Persons{get;set;}
// optionally you could add child objects
public IDbSet<Customer> Customers{get;set;}
public IDbSet<Sponsor> Sponsors{get;set;}
}
由于使用了继承EF
,只需为您的实体创建一个表。但是你有3个单独的课程。
答案 1 :(得分:0)
是的,你可以
public class Customer
{
public int ID {get;set;}
//all your columns goes here
///these 2 lines for foreign key mapping except sponsor
public virtual Customer Sponsor {get;set;}
public virtual IList<Customer> CustomerList{get;set;}
}
在你的DbContext中
public DbSet<Customer> Customers{get;set;}