これは簡単で汚いですが、アイデアが得られるはずです。以前にやったことがありますが、どこでやったかわかりませんし、あまりにも長い間覚えていません。複数レベルのリストを検索する必要があります....
例:「豚」で検索
var query = context.Farms.OrderBy(x => x.FarmName).Select(f => new FarmItem
{
FarmId = f.FarmId,
FarmName = f.FarmName,
Fields = f.Fields.OrderBy(x => x.FieldName).Select(d => new FieldItem
{
FieldId = d.FieldId,
FieldName = d.FieldName,
Animals = d.Animals.OrderBy(x => x.AnimalName).Select(a => new AnimalItem
{
AnimalId = a.AnimalId,
AnimalName = a.AnimalName
})
})
});
"pig" が FarmName、FieldName、または AnimalName に含まれているかどうかを確認する必要があります。
- 名前に「pig」が含まれていて、そのすべてがフィールドであり、フィールドの動物である場合は、農場を返します
- 名前に「豚」が含まれるフィールド、農場、およびフィールドのすべての動物を返します
- 名前に「豚」が含まれるプランと畑、畑の農場を返す