オブジェクトNHibernateはロードしない子供は、私は、クラスと関連マッピング(流暢NHibernateは)下記た
public class CategoryMap : ClassMap<Category>
{
public CategoryMap()
{
Table("Categories");
Id(x => x.Id).Column("Id").CustomType("Int32").Access.Property()
.CustomSqlType("int").Not.Nullable().Precision(10)
.GeneratedBy.Identity();
Map(x => x.Description).Column("Description").Nullable()
.Generated.Never().CustomType(typeof (string)).Access
.Property().Length(250);
Map(x => x.Name).Not.Nullable().Generated.Never().CustomType("string")
.Access.Property().Column("Name").Length(50);
References(x => x.ParentCategory).Column("ParentCategoryId");
HasMany(x => x.ChildCategories).KeyColumn("ParentCategoryId").Inverse()
.AsBag().Fetch.Select();
}
}
次のように私は2つのCategory
オブジェクトを作成する:
var c = new Category
{
Name = "Ebooks",
Description = "Contains awz, mobi, pdf, epub and other
electronic books"
};
var cc = new Category
{
Name = "Kindle Books",
Description = "Contains Kindle ebook reader format books
(awz, mobi)",
ParentCategory = c
};
session.SaveOrUpdate(c);
session.SaveOrUpdate(cc);
保存されたオブジェクトにアクセスしようとすると:
var c = session.Load<Category>(1);
var cc = c.ChildCategories;
c
1のId
とCategory
オブジェクトを含むが、そのChildCategories
プロパティがnull
あります。
私は間違っていますか?
PS:これはNHibernate
の最初の実験で、Fluent NHibernate
となります。
編集: -次のようなことが働いた。私は読書のために再び開く前に、セッションを閉じる必要がありました。さもなければ、@ Holfが私がCategory
のようにChild Category
を追加する必要があることを指摘したように、メモリナッドからただ読んでいます:
c.ChilCategories.Add(cc);
'Fetch.Select()'(1) '(1)'? –
TheVillageIdiot
をあなたが変更した場合、暗闇の中でだけでショットです私は以前にこの問題に遭遇していなかったことに驚いたが(過去にハッキングしているかもしれないが)、セッションを再開するとそれは完全に解決する – Rippo
session.Get 'に'たSession.loadそれは動作しませんでした:(どうなり –