Pau*_*aul 26 entity-framework-core
如何使用Fluent API在EF7 EF Core中的两个表之间创建多对多的关系?例如,假设您有以下表格:

如何利用DbContext类中的modelBuilder来定义这样的关系?
我已经看到EF团队关于这个主题的会议记录中的这个链接,但它是从去年开始,我想知道是否有关于如何在EF7 EF Core 中进行此处的新信息.
我能够在Photos和PhotosPeople以及People和PhotosPeople之间创建一对多的关系.数据库按照我的意愿生成,但人和照片之间的导航现在需要与中间实体进行交互.我想避免这种情况.
bri*_*lam 48
这由#1368跟踪.解决方法是将连接表映射到实体:
class Photo
{
public int Id { get; set; }
public ICollection<PersonPhoto> PersonPhotos{ get; set; }
}
class PersonPhoto
{
public int PhotoId { get; set; }
public Photo Photo { get; set; }
public int PersonId { get; set; }
public Person Person { get; set; }
}
class Person
{
public int Id { get; set; }
public ICollection<PersonPhoto> PersonPhotos{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
请务必PersonPhoto使用复合键进行配置:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<PersonPhoto>().HasKey(x => new { x.PhotoId, x.PersonId });
}
Run Code Online (Sandbox Code Playgroud)
要导航,请使用选择:
// person.Photos
var photos = person.PersonPhotos.Select(c => c.Photo);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17424 次 |
| 最近记录: |