【发布时间】:2016-10-19 02:21:22
【问题描述】:
我的模型中有 ICollection Actor。演员有名字参数。 我想选择带有所选名称的演员的电影。按钮中的 SearchActor 字符串,
namespace AEXSoft.Models
{
public class Movie
{
public int MovieID { get; set; }
public string Title { get; set; }
public string Date { get; set; }
public int Budget { get; set; }
public string Genre { get; set; }
public virtual ICollection<Actor> Actors { get; set; }
}
}
在电影控制器中我进行了查询
if (!String.IsNullOrEmpty(SearchActor))
{
Movie = Movie.Where(c => Actors.Name.Contains(c.Actors.SearchActor));
}
return View(Movie.ToList());
*
“ICollection”不包含“名称”的定义,也没有 扩展方法“名称”接受类型的第一个参数 'ICollection' 可以这样吗?
*
同样的任务,但是搜索所有的 Actor。
Movie=ctx.Movie.Where(s => s.Actors.Contains(SearchActor)).SelectMany(u => u.Actors).ToList();
【问题讨论】:
-
第一个查询将返回电影列表,即。 List
与选定的演员(而不仅仅是单个演员)..你想要吗?第二个相同,但与电影..如果你只想要一个,使用 .FirstOrDefault() -
是的,我想要包含所选演员的电影列表。这是真的,但我想到了另一个问题,我如何编写查询来搜索特定演员的特定电影。
-
稍后我会测试我的代码
-
谢谢,彼得亚当!
-
你可以这样简化:Movies = Movie.Where(c => c.Actors.Name.Contains(SearchActor) && c.Title.Contains(SearchMovie)).ToList()跨度>
标签: asp.net entity-framework linq collections