0
私は、エンティティとDTOSのIQueryable
public class Country
{
public List<NameLocalized> NamesLocalized;
public CountryData Data;
}
public class NameLocalized
{
public string Locale;
public string Value;
}
public class CountryData
{
public int Population;
}
public class CountryDto
{
public String Name;
public CountryDataDto Data;
}
public class CountryDataDto
{
public int Population;
}
私はCountryDtoに国を変換する必要があります(理想的に、私は、データベースへの単一のクエリを作成したい)を、次のしていると仮定使用してDTOにナビゲーションプロパティを持つエンティティに変換します。私はStackoverflowに関する他の質問にいくつかの提案を受け取りましたが、今はタスクを部分的にしか達成できません。私はナビゲーションプロパティ(この場合はCountryData
)を変換する方法についていません。私はこのためにLINQKitを使用することを提案されましたが、それをどのように実装するかは考えていません。ここには、Name
プロパティのみが設定され、Data
ナビゲーションプロパティは設定されません。
public static async Task<List<CountryDto>> ToDtosAsync(this IQueryable<Country> source, string locale)
{
if(source == null)
{
return null;
}
var result = await source
.Select(src => new CountryDto
{
Name = src.NamesLocalized.FirstOrDefault(n => n.Locale == locale).Name
})
.ToListAsync();
return result;
}