유창한 nhibernate Getting started tutorial에 따라 다 대다 관계를 만들었습니다.많은 수의 nhibernate에서 많은 수의 nhibernate로 레코드 되 돌리기?
http://wiki.fluentnhibernate.org/images/2/24/FirstProjectSchema.png
는 지금은 데이터를 검색하는 방법을하지 확신합니다. 예를 들어 상점에서 판매하는 모든 제품을 얻으려면 어떻게 될까요?
그래서 제품 테이블에서 storeId를 사용해야합니다. 그러나 제품 테이블에는 storeId가 없으며 실제로 StoreProduct에 대한 매핑이나 속성을 포함하는 클래스가 없습니다.
그래서 나는 그래서 그들에 쿼리를 수행 한 다음 스토어 및 제품에 가입 할 필요 할
session.Query<StoreProduct>().Where(x => x.StoreId == "1").toList();
을 갈 수 없어?
편집 여기
내가 무슨의 약화 버전입니다.
public class Student
{
public virtual Guid StudentId { get; private set; }
public virtual IList<Course> Courses { get; set; }
public virtual IList<Permission> Permissions{get; set;}
public Student()
{
Courses = new List<Course>();
Permissions = new List<Permission>();
}
public class StudentMap : ClassMap<Student>
{
public StudentMap()
{
Table("Students");
Id(x => x.StudentId).Column("StudentId");
HasManyToMany(x => x.Permissions).Table("PermissionLevel");
HasManyToMany(x => x.Courses).Table("PermissionLevel");
}
}
public class CourseMap : ClassMap<Course>
{
public CourseMap()
{
Table("Courses");
Id(x => x.CourseId).Column("CourseId");
HasManyToMany(x => x.Permissions).Table("PermissionLevel");
HasManyToMany(x => x.Students).Table("PermissionLevel");
}
}
public class Course
{
public virtual int CourseId { get; private set; }
public virtual IList<Permission> Permissions { get; set; }
public virtual IList<Student> Students { get; set; }
public Course()
{
Permissions = new List<Permission>();
Students = new List<Student>();
}
}
public class PermissionMap : ClassMap<Permission>
{
public PermissionMap()
{
Table("Permissions");
Id(x => x.PermissionId).Column("PermissionId");
HasManyToMany(x => x.Students).Table("PermissionLevel");
}
}
public class Permission
{
public virtual int PermissionId { get; private set; }
public virtual IList<Student> Students {get; set;}
public Permission()
{
Students = new List<Student>();
}
}
var a = session.Query<Student>().Where(x => x.Email == email).FirstOrDefault();
var b = session.Get<Student>(a.StudentId).Courses;
오류를 들여다 보면 오류가납니다.
컬렉션 초기화 할 수 : [Student.Courses # 757f27a2-e997-44f8-b2c2-6c0fd6ee2c2f] [SQL : SELECT courses0_.Student_id Student3_1_, courses0_.Course_id 같은 Course1_1_로서 course1_.CourseId을 CourseId2_0_, course1_.Prefix로 courses0_ 아우터 왼쪽 Prefix2_0_, Backgrou3_2_0_ 같은 course1_.BackgroundColor PermissionLevel FROM 는 courses0_.Course_id = course1_.CourseId WHERE courses0_.Student_id =?] "
,745,151의 과정을 course1_ 참여함에
은 어떤 방식으로 불완전합니다. PermissionLevel 테이블을 둘 다 사용할 수 없습니까? – chobo2
@ chobo2 매핑에있는 권한 모음이 없습니다. 이 코드에 따르면,'HasManyToMany (x => x.Permissions) .Table ("PermissionLevel");'을 컴파일하면 안된다 – gor
아 예제를 복사 할 때 실수로 삭제했다. – chobo2