Node (ビジネス オブジェクト クラス) の IQueryable を返すリポジトリに以下の呼び出しがあり、サービス レイヤーにフィルター関数があり、IQueryable 呼び出しに追加され、リポジトリ関数 GetNodes を ID でフィルター処理します。FilterById をリストとして返すと (実行されるため)、エラーが発生します -- The member 'bo.Node.Id' has no supported translation to SQL. --
linq で生成されていないクラスを IQueryable として返すときに、このエラーを回避する方法はありますか?
public IQueryable<bo.Node> GetNodes()
{
return (from item in Db.Nodes select new bo.Node(item.id,
item.created, item.lastupdated, item.name,
item.parentid, item.siteid, item.userid));
}
私のサービス層で
private IQueryable<bo.Node> FilterById(IQueryable<bo.Node> source, Guid id)
{
return source.Where(i => i.Id.Equals(id))
}