以下はコードです、私は試しています:
public List<Movie> GetMovies()
{
Func<Movie, Movie> prepareMovieOutput =
(input) =>
{
input.DisplayHtmlContent = String.Empty;
return input;
};
var moviesOutput = from m in db.Movies.ToList()
select prepareMovieOutput(m);
return moviesOutput.ToList();
}
public List<Movie> SearchMovies(string searchTerm)
{
var moviesOutput = db.Movies.Where(m => m.Name.Contains(searchTerm)).ToList();
return moviesOutput.ToList();
}
GetMovies 関数は、DisplayHtmlContent フィールドをクリアした後に List コレクションを返すため、適切に機能しています。一方、SearchMovies 関数は、DisplayHtmlContent フィールドを含む Movie コレクションを返すはずですが、そのフィールドを空にします。DisplayHtmlContent を何らかの固定値 (「ABC」など) に設定すると、GetMovies と SearchMovies の両方が、DisplayHtmlContent フィールドを「ABC」値として持つすべてのムービーのリストを返します。あるメソッドで定義された関数が他のメソッドに影響を与える理由がわかりません。また、この問題を修正する方法は? 理想的には、GetMovies がその特定のフィールドを持つすべてのムービーを空の文字列として保持し、SearchMovies が値を含むそのフィールドを持つすべてのムービーを保持するようにします。
これに関するヘルプは大歓迎です。