isessionfactory fluently descargar nhibernate orm mapping fluent

fluently - nhibernate c#



Fluidez en el mapa de NHibernate HasManyToMany() (1)

En cuanto al código que estoy usando en mi proyecto, definiría sus muchas relaciones con Túnez de esta manera:

public UsersMap() { ... HasManyToMany(x => x.Roles) .WithTableName("UserInRoles") .WithParentKeyColumn("Usernamepk") .WithChildKeyColumn("RoleIdpk"); } public RolesMap() { ... HasManyToMany(x => x.Users) .WithTableName("UserInRoles") .WithParentKeyColumn("RoleIdpk") .WithChildKeyColumn("Usernamepk"); }

Tal definición funciona para mí. Verifique esto primero y luego decore con LazyLoading y algunas otras propiedades.

Tengo un problema en el ejemplo de Fluiber NHibernate que utiliza las relaciones de Muchos a Muchos. Traté de encontrar ejemplos en un caso similar, y encontré toneladas, pero sigo teniendo el mismo problema.

Al ejecutar el proyecto de prueba, se lanza la siguiente excepción:

NHibernate.PropertyAccessException: se produjo la excepción getter de project.Entities.User.UserName ---> System.Reflection.TargetException: el objeto no coincide con el tipo de destino.

Esta es una imagen de las tablas:

y el código

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(); }

aquí está el código, la mayoría de los ejemplos en la web y la página de asignaciones de Fluent Nhibernate están escritas de la misma manera, ¿así que cualquier idea?