문제는 없습니다. FluentNHibernate/NHibernate가 액세스 할 행을 아는 방법에 대해 궁금합니다. 이 일대 관계FluentNHibernate는 액세스 할 행을 어떻게 알 수 있습니까?
public class User
{
public virtual int Id { get; protected set; }
public virtual IList<Friend> Friends { get; set; }
}
public class Friend
{
public virtual int Id { get; protected set; }
public virtual User User { get; set; }
public virtual String FunnyProperty { get; set; }
}
: 다음 의사 코드에서
, 나는이 단체가
public class UserMap : ClassMap<User>
{
Id(x => x.Id);
// One user has many friends
HasMany(x => x.Friends).KeyColumn("UserId")...
}
public class FriendMap : ClassMap<Friend>
{
Id(x => x.Id);
References(x => x.User, "UserId")...
}
나는 양방향 관계를 구축하기 위해 다음 코드를 실행하면 : 다음
var user = new User().Friends.AddRange(/* 5 friends */);
/* 5 friends */.ForEach(friend => friend.User = user);
및 설정 :
,user[2].FunnyProperty = "a magic string";
는 시각적 데이터베이스 탐색기 도구에서, 나는 사용자로 표를 참조 :
Id -------------------------------------- 63 --------------------------------------
테이블 친구 등 :
Id | UserId | FunnyProperty -------------------------------------- 24 | 63 | (null) -------------------------------------- 25 | 63 | (null) -------------------------------------- 26 | 63 | a magic string -------------------------------------- 27 | 63 | (null) -------------------------------------- 28 | 63 | (null) --------------------------------------
어떻게 FluentNHibernate/자 NHibernate는 user.Friends
에서 3 Friend
대상으로 ID 26 "기억"는 무엇입니까? 트랜잭션을 커밋하고 다른 트랜잭션을 다른 위치에서 시작한 다음 동일한 user.Friends[2]
을 검색한다고 가정 해보십시오. FluentNHibernate/NHibernate는 id 26 행을 액세스하는 것을 어떻게 알고 있습니까? 당신이 아래처럼 대해 부동 다양한 사용자와 친구 테이블이있을 때
특히, 방법 FluentNHibernate/NHibernate에 액세스 할 행 "기억"않을 때 :
Id | UserId | FunnyProperty -------------------------------------- 24 | 24 | (null) -------------------------------------- 25 | 89 | (null) -------------------------------------- 26 | 66 | a magic string -------------------------------------- 27 | 12 | (null) -------------------------------------- 28 | 66 | (null) -------------------------------------- 28 | 89 | (null) --------------------------------------