유창한 nhibernate hasmanytomany () 매핑
-
19-09-2019 - |
문제
나는 많은 관계를 활용하여 유창한 nhibernate 예제에 문제가 있습니다. 비슷한 경우에 대한 예를 찾으려고 노력했지만 톤을 찾았지만 여전히 같은 문제가 있습니다.
테스트 프로젝트를 실행할 때 다음과 같은 예외가 발생합니다.
nhibernate.propertyaccessexception : 예외는 project.entities.user.username ---> system.reflection.targetexception의 getter getter of getter of getser of getress of getsred of project.
이것은 테이블의 이미지입니다.
그리고 코드
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();
}
다음은 웹과 유창한 Nhibernate Mappings 페이지의 대부분의 예제입니다. 아이디어가 같은 방식으로 작성됩니다.
해결책
프로젝트에서 사용하는 코드와 관련하여 여러분의 많은 관계를 이런 식으로 정의 할 것입니다.
public UsersMap()
{
...
HasManyToMany(x => x.Roles)
.WithTableName("UserInRoles")
.WithParentKeyColumn("Usernamepk")
.WithChildKeyColumn("RoleIdpk");
}
public RolesMap()
{
...
HasManyToMany(x => x.Users)
.WithTableName("UserInRoles")
.WithParentKeyColumn("RoleIdpk")
.WithChildKeyColumn("Usernamepk");
}
그러한 정의는 저에게 효과적입니다. 먼저 이것을 확인한 다음 Lazyloading 및 다른 속성으로 장식하십시오.
제휴하지 않습니다 StackOverflow