在 NHibernate 的多对多关系上添加自定义列
Add custom columns on many to many relationship on NHibernate
我有一个电影实体和一个演员实体,这两个实体具有多对多的关系,所以我将其映射为 ManyToMany(x=>x.Movies)
和 ManyToMany(x=>x.Actors)
,但我想要演员在电影中扮演的角色,它应该留在 MoviesActorsPivot
作为一个新列
但是我怎样才能使用 Fluent Nhibernate 映射以一种可以像 nhibernate 一样简单地获取和保存数据的方式来做到这一点?
不是手动创建枢轴 table 而是在两侧创建 HasMany(x => x.MoviesActorsPivot)
并由我自己管理关联。
编辑:
或者,如果我将其映射为在两侧创建 HasMany(x => x.MoviesActorsPivot)
,我将如何设法插入和获取所有数据,例如来自演员的所有电影或所有扮演电影的演员,获取所有角色名字?
答案是:
NHibernate native many-to-many
mapping does not support any additional setting on the pairing table
但是,它可以被一个配对对象替换为一级公民
public class MovieActor
{
public virtual Movie Movie { get; set; }
public virtual Actor Actor { get; set; }
... // more properties here
public virtual int Rating { get; set; }
}
public class Actor
{
public virtual IList<MovieActor> Movies { get; set; }
}
public class Movie
{
public virtual IList<MovieActor> Actors { get; set; }
}
那将是标准的 HasMany
和 References
映射。而且后面的查询会更简单
同时检查这些:
- Nhibernate: How to represent Many-To-Many relationships with One-to-Many relationships?
- nhibernate many to many with multiple table
- many-to-many with extra columns nhibernate
我有一个电影实体和一个演员实体,这两个实体具有多对多的关系,所以我将其映射为 ManyToMany(x=>x.Movies)
和 ManyToMany(x=>x.Actors)
,但我想要演员在电影中扮演的角色,它应该留在 MoviesActorsPivot
作为一个新列
但是我怎样才能使用 Fluent Nhibernate 映射以一种可以像 nhibernate 一样简单地获取和保存数据的方式来做到这一点?
不是手动创建枢轴 table 而是在两侧创建 HasMany(x => x.MoviesActorsPivot)
并由我自己管理关联。
编辑:
或者,如果我将其映射为在两侧创建 HasMany(x => x.MoviesActorsPivot)
,我将如何设法插入和获取所有数据,例如来自演员的所有电影或所有扮演电影的演员,获取所有角色名字?
答案是:
NHibernate native
many-to-many
mapping does not support any additional setting on the pairing table
但是,它可以被一个配对对象替换为一级公民
public class MovieActor
{
public virtual Movie Movie { get; set; }
public virtual Actor Actor { get; set; }
... // more properties here
public virtual int Rating { get; set; }
}
public class Actor
{
public virtual IList<MovieActor> Movies { get; set; }
}
public class Movie
{
public virtual IList<MovieActor> Actors { get; set; }
}
那将是标准的 HasMany
和 References
映射。而且后面的查询会更简单
同时检查这些:
- Nhibernate: How to represent Many-To-Many relationships with One-to-Many relationships?
- nhibernate many to many with multiple table
- many-to-many with extra columns nhibernate