我正在使用WPF和MVVM设计模式编写应用程序(我也是MVVM模式的新手).此应用程序管理和跟踪用户观看的电影.它还需要联系外部网站以下载电影元数据.我是通过使用.NET TMDb和烂番茄库来做到这一点的.
目前,我Movie在Models文件夹中有一个类,该类包含电影的所有属性以及设置TMDb/RT库,搜索匹配结果,然后下载所有元数据所需的方法和逻辑.然而,这使我的Movie班级比我认为的应该更加混乱和沉重.
将用于访问第三方API的方法和逻辑移动到MovieViewModel甚至是另一个类是否更有意义?Model类应该有多简单?
我有一系列具有各种属性(标题,发行年份,评级等)的电影,我需要使用LINQ查询进行搜索,如下所示:
public BindingList<Movie> SearchByTitle(string title)
{
var matches = from movies in movieCollection
where movies.Title == title
select movies;
// do some other stuff with the matches
}
Run Code Online (Sandbox Code Playgroud)
但我不想要一个单独的方法来搜索每个属性,因为搜索之间唯一的变化就是where节.例如where movies.Rating == rating或where movies.ReleaseYear == releaseYear.如何通过传递某种类型Expression或Func作为where节来使搜索方法可以重复用于所有不同类型的搜索?