1
エンティティをDTOにマップしようとすると、次のエラーが発生します。エンティティへエンティティへの拡張メソッドとLINQがメソッドエラーを認識しません
LINQは方法を認識しない 'Dto.Team ToTeamDto(チーム、可能System.String)' メソッド、およびこの方法 は、ストア式に変換することができません。」
ここ
クエリ
bool includeTeam = true;
var source = from c in db.Standings
where c.LeagueID == leagueId
select new Standing
{
id = c.StandingsId,
team = includeTeam ? c.Team.ToTeamDto("en-US") : null
};
と拡張メソッドがある
internal static Dto.Team ToTeamDto(this Team team, string locale)
{
return new Dto.Team
{
id = team.TeamID,
name = team.name
};
}
これは何が問題ですか? どうすれば修正できますか?
これより簡単な回避策が必要ですか?つまり、Standingクラスには30個以上のプロパティがあり、簡単のために上記の例から除外されています。 – OrElse
ToTeamDtoメソッドをEFクエリに渡すことはできません。そのコードをクエリに埋め込むことができます。 – DavidG
少し簡略化しました – DavidG