Entity Framework 中同一实体的一对一和一对多
One-to-one and one-to-many on the same entity in Entity Framework
我尝试了不同的方法将一个实体同时映射为 one-to-one
和 one-to-many
,但我没有成功。
我在这里提供了我的模型:
public class Office
{
public virtual Person Manager {get; set;}
public virtual List<Person> People {get; set;}
}
public class Person
{
public virtual Office Office{get;set;}
}
谁能指导我用流利的方式写映射api?
没有必要为特定的实体定义两个不同的映射。我所需要的只是通过流利的 api 映射 one-to-many
关系。
更改如下:
public class Office
{
// fk field to the entity
public Guid ManageId{get;set;}
public virtual Person Manager {get; set;}
public virtual List<Person> People {get; set;}
}
public class Person
{
// fk field to the entity
public virtual Guid OfficeId{get;set;}
public virtual Office Office{get;set;}
}
并且通过使用流利的 api:
modelBuilder.Entity<Office>()
.HasMany(d => d.People)
.WithOptional(s => s.Manager)
.Map(cs => cs.MapKey("OfficeId"));
我尝试了不同的方法将一个实体同时映射为 one-to-one
和 one-to-many
,但我没有成功。
我在这里提供了我的模型:
public class Office
{
public virtual Person Manager {get; set;}
public virtual List<Person> People {get; set;}
}
public class Person
{
public virtual Office Office{get;set;}
}
谁能指导我用流利的方式写映射api?
没有必要为特定的实体定义两个不同的映射。我所需要的只是通过流利的 api 映射 one-to-many
关系。
更改如下:
public class Office
{
// fk field to the entity
public Guid ManageId{get;set;}
public virtual Person Manager {get; set;}
public virtual List<Person> People {get; set;}
}
public class Person
{
// fk field to the entity
public virtual Guid OfficeId{get;set;}
public virtual Office Office{get;set;}
}
并且通过使用流利的 api:
modelBuilder.Entity<Office>()
.HasMany(d => d.People)
.WithOptional(s => s.Manager)
.Map(cs => cs.MapKey("OfficeId"));