0

私はDTO Suachのリストを次のように持っています:

 Public Class UKey
{
    public Int64 Key{ get; set; }

}

Public Class Test : UKey
{
    public Int64? CityId  { get; set; }
    public Test2  test2{ get; set; }
}
Public Class Test2 : UKey
{
    public Int64? CountryId { get; set; }
    public Test3 test3 {get;set;}
}
public Class Test3 :UKey
{

}

たとえば、クラス test にはクラス test 2 のメンバーがあり、クラス test2 にはタイプ クラス test 3 のメンバーがあり、各クラスには独自の一意のキーがあり、このキーは GUId のようにそれらのいずれでも繰り返すことはできません. Class Test にクエリを実行して、指定された一意のキーを持つこれらのネストされた Dto の 1 つだけを見つけたいと考えています。

4

1 に答える 1

0

テストオブジェクトがIEnumerableであると仮定します。これは、テストオブジェクトのセットです。

tests.SingleOrDefault(q => q.test2.Key == id || q.test2.test3.Key == id);

更新:再帰検索を適用する必要があります。基本クラスを少し変更しました。

public class UKey
{
public Int64 Key { get; set; }
public UKey ReferencedEntity { get; set; }
}

および検索機能:

private UKey Search(UKey entity, Int64 id)
{
    UKey result = null;
    if (entity.Key == id)
        result = entity;
    else
    {
        result = this.Search(entity.ReferencedEntity,id);
    }
    return result;
}
于 2013-03-07T10:55:01.460 に答える