Telerik OpenAccess ORM に (さらに) いくつかの問題があります。今回は、フェッチ戦略をクエリに適用する領域について説明します。これがコードです...
using (DAL.DarkRoomDB ctx = new DarkRoomDB())
{
//
// Set the resulting object to include the contents of the package
FetchStrategy strategy = new FetchStrategy();
strategy.LoadWith<DeliverablePackageEntity>(c => c.PackageContents);
strategy.LoadWith<DeliverablePackageContentEntity>(c => c.Deliverable);
strategy.LoadWith<DeliverablePackageContentEntity>(c => c.DeliverablePackage);
strategy.MaxFetchDepth = 3;
ctx.FetchStrategy = strategy;
//
// get the package that matches the SKU
DataStoreRepository<DeliverablePackageEntity> repo = DataStoreRepository<DeliverablePackageEntity>.GetInstance(ctx);
DeliverablePackageEntity entity = repo.GetEntityList(c => c.PackageSku == SKU).FirstOrDefault();
//
// Create a DISCONNECTED COPY of the entity
copy = ctx.CreateDetachedCopy<DeliverablePackageEntity>(entity, strategy);
}
ret = EntityToDomainMapper.Map<DeliverablePackageEntity, DeliverablePackage>(copy);
return ret;
これを実行すると、DeliverablePackageEntityのPackageContentsが事前に読み込まれることが期待されます。ただし、デバッガーでエンティティ変数を見ると、「展開するとプロパティの内容が列挙される」ことがわかります。これは、プロパティがまだ事前に入力されていないことを示唆しています。 FetchStrategy の
何か不足していますか?