如何使用Nhibernate manytomy添加记录?
我有一个演员和电影班。一个演员可以在很多电影中扮演角色,一部电影可以有很多演员。所以我编写了这些类和映射如何使用Nhibernate manytomy添加记录?,nhibernate,many-to-many,Nhibernate,Many To Many,我有一个演员和电影班。一个演员可以在很多电影中扮演角色,一部电影可以有很多演员。所以我编写了这些类和映射 class Actor { public Actor() { Movies = new List<Movie>(); } public virtual int ActorId { get; set; } public virtual string ActorName { get; set; } public virt
class Actor
{
public Actor()
{
Movies = new List<Movie>();
}
public virtual int ActorId { get; set; }
public virtual string ActorName { get; set; }
public virtual IList<Movie> Movies { get; set; }
}
class ActorMap : ClassMap<Actor>
{
public ActorMap ()
{
Id(x => x.ActorId).GeneratedBy.Identity();
Map(x => x.Name);
HasManyToMany(x => x.Movies)
.Cascade.All()
.Table("ActorMovies");
}
}
class Movie
{
public virtual Guid MovieId { get; set; }
public virtual string MovieName { get; set; }
public virtual IList<Actor> Actors { get; set; }
}
class MovieMap : ClassMap<Movie>
{
public MovieMap ()
{
Id(x => x.MovieId).GeneratedBy.GuidComb();
Map(x => x.Name);
HasManyToMany(x => x.Actors)
.Cascade.All()
.Inverse()
.Table("ActorMovies");
}
}
您可以尝试以下方法:
Movie killBill = new Movie {
Name = "Kill Bill"
};
Actor umaThurman = new Actor
{
Name = "Uma Thurman",
};
umaThurman.Movies.Add(killBill);
killBill.Actors.Add(umaThurman);
Actor davidCarradine = new Actor
{
Name = "David Carradine",
};
davidCarradine.Movies.Add(killBill);
killBill.Actors.Add(davidCarradine);
// Actor Class
public virtual IList<Movie> Movies { get; set; } = new List<Movie>();
// Movie Class
public virtual IList<Actor> Actors { get; set; } = new List<Actor>();
//演员类
公共虚拟列表{get;set;}=new List();
//电影课
公共虚拟IList参与者{get;set;}=new List();
Actor davidCarradine = new Actor
{
Name = "David Carradine",
};
davidCarradine.Movies.Add(killBill);
killBill.Actors.Add(davidCarradine);
session.Save(killBill);
// Actor Class
public virtual IList<Movie> Movies { get; set; } = new List<Movie>();
// Movie Class
public virtual IList<Actor> Actors { get; set; } = new List<Actor>();