問題ありません。FluentNHibernate/NHibernate がどの行にアクセスするかをどのように認識しているかに興味があります。
次の疑似コードには、次のエンティティがあります。
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";
次に、ビジュアル データベース エクスプローラー ツールで、Usersテーブルを次のように表示します。
ID -------------------------------------- 63 --------------------------------------
および表Friendsは次のとおりです。
ID | ユーザー ID | 面白いプロパティ -------------------------------------- 24 | 63 | (ヌル) -------------------------------------- 25 | 63 | (ヌル) -------------------------------------- 26 | 63 | 魔法の糸 -------------------------------------- 27 | 63 | (ヌル) -------------------------------------- 28 | 63 | (ヌル) --------------------------------------
FluentNHibernate/NHibernate はid 26を 3 番目のFriend
オブジェクトとしてどのように「記憶」しuser.Friends
ますか? トランザクションをコミットし、別の場所で別のトランザクションを開始し、同じuser.Friends[2]
. FluentNHibernate/NHibernate は、ID 26の行にアクセスすることをどのように認識しますか?
特に、以下のようにさまざまなユーザーが浮かんでいるFriendsテーブルがある場合、FluentNHibernate/NHibernate はアクセスする行をどのように「記憶」しますか?:
ID | ユーザー ID | 面白いプロパティ -------------------------------------- 24 | 24 | (ヌル) -------------------------------------- 25 | 89 | (ヌル) -------------------------------------- 26 | 66 | 魔法の糸 -------------------------------------- 27 | 12 | (ヌル) -------------------------------------- 28 | 66 | (ヌル) -------------------------------------- 28 | 89 | (ヌル) --------------------------------------