0

以下に基づいてオブジェクトのコレクションを返そうとしています:

私は3つの公開クラスを持っています

  • ObjectA

  • ObjectB

  • ObjectC

Cは の子でありBBの子ですA

およびオブジェクトObjectCの一部として存在する場合、 のコレクションを取得する必要があります。BA

これは私がこれまでに持っているものです:

#region setup

private ObjectADao objectADao;

public void Init()
{
    objectADao = new ObjectA();
    objectADao.SqlMapper = SqlMapper;
    objectADao.AfterPropertiesSet();
}

#endregion

 ICollection<ObjectA> objectACollection = objectADao.FindAll(1000);
 var objectAwithObjectB= objectACollection.Where
 (p => p.objectB != null && p.objectB.Count > 0);
//ICollection<ObjectB> = objectAwithObjectB....

この時点で、A タイプのコレクション ( objectAwithObjectB) がありObjectますが、それらに が含まれている場合のみですObjectB

それは私が立ち往生していたということです。ObjectB上記の型のコレクションから、型のコレクションを取得する必要がありAます。(そのため、最終的に型に到達できCます)。

ObjectBObjectC独自の DAO が設定されておらず、 からのみ取得できますObjectAObjectBこの時点では、個別のコレクションを取得できないようです...

これが理にかなっていることを願っています。まだまだ未熟者ですのでお手柔らかにお願いします。どんな助けでも大歓迎です。

4

2 に答える 2

0

以下を試してください

objectACollection
.Where(p => p.objectB != null && p.objectB.Count > 0)
.SelectMany(objA => objA.ObjectB)

これにより、フラットな IEnumerable が得られます

于 2013-07-08T15:56:17.283 に答える