J'ai un problème dans l'exemple Fluent NHibernate utilisant les nombreux à plusieurs. J'ai essayé de trouver des exemples sur un cas similaire, et j'ai trouvé des tonnes, mais j'ai toujours le même problème.Courant NHibernate HasManyToMany() Cartographie
Lors de l'exécution du projet d'essai, l'exception suivante est générée:
NHibernate.PropertyAccessException: Exception a eu lieu getter project.Entities.User.UserName ---> System.Reflection.TargetException: objet ne correspondance type de cible.
Ceci est une image des tables:
et le code
public UsersMap()
{
this.Table("Users");
Id(x => x.UserName).Column("Username").GeneratedBy.Assigned();
Map(x => x.FirstName);
Map(x => x.LastName);
Map(x => x.Password);
Map(x =>x.EMail);
Map(x => x.Title);
Map(x => x.Division);
HasManyToMany<User>(x => x.Roles)
.Table("UserInRoles").ParentKeyColumn("Username")
.ChildKeyColumn("Usernamepk")
.Cascade.SaveUpdate().LazyLoad();
}
public RolesMap()
{
this.Table("Roles");
Id(x => x.ID).GeneratedBy.Assigned().Column("ID");
Map(x => x.RoleName).Length(50);
HasManyToMany<User>(x => x.Users)
.Table("UserInRoles").ParentKeyColumn("ID")
.ChildKeyColumn("RoleIdpk").Cascade.SaveUpdate().LazyLoad();
}
est le code ici, la plupart des exemples sur le web et la page correspondances Fluent NHibernate sont écrits en de la même manière, donc des idées?
btw, im utilisant Fluent version 1.0, de sorte que le .WithTableName() est Table() à la place, de toute façon, j'ai essayé de l'utiliser sans lazyload et autres défeintions, mais toujours la même exception: S – Saeedouv
Etes-vous sûr qu'il faut être cartographié des deux côtés? – UpTheCreek
Pour ma situation, je ne veux pas lier dans les deux sens. J'ai une compagnie, une personne et une adresse et chaque entreprise ou personne peut avoir plus d'une adresse. Dans cette situation, que dois-je faire? – uzay95