문제

나는 많은 관계를 활용하여 유창한 nhibernate 예제에 문제가 있습니다. 비슷한 경우에 대한 예를 찾으려고 노력했지만 톤을 찾았지만 여전히 같은 문제가 있습니다.

테스트 프로젝트를 실행할 때 다음과 같은 예외가 발생합니다.

nhibernate.propertyaccessexception : 예외는 project.entities.user.username ---> system.reflection.targetexception의 getter getter of getter of getser of getress of getsred of project.

이것은 테이블의 이미지입니다.

Tables

그리고 코드

 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 및 다른 속성으로 장식하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top