实体框架 - Linq to Entities - 匿名函数的奇怪问题

时间:2013-07-30 05:48:40

标签: entity-framework linq-to-entities anonymous-function

以下是代码,我正在尝试:

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字段的Movie为“ABC”值。我不明白为什么一个方法中定义的函数会影响另一个方法。以及如何解决这个问题? 理想情况下,我希望GetMovies将所有具有该特定字段的Movie保存为空字符串,而SearchMovies则将所有Movie保存为包含该值的字段。

对此的任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

这是由于使用了存储库。我删除它,它开始工作正常。拥有EF 5,我不需要使用存储库