我的模型中有ICollection Actors。演员有名字参数。 我想选择带有所选名字的演员电影。按钮中的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());
*
&#39; ICollection的&#39;不包含&#39;姓名&#39;的定义和不 扩展方法&#39;名称&#39;接受第一个类型的参数 &#39; ICollection的&#39;这是正确的吗?
*
同样的任务,但是所有演员都在进行。
Movie=ctx.Movie.Where(s => s.Actors.Contains(SearchActor)).SelectMany(u => u.Actors).ToList();
答案 0 :(得分:1)
你想要那样的东西
var movieList = Movie.Where(c => c.Actors.Any(i => i.Name.Contains(SearchActor))).ToList()
答案 1 :(得分:1)
首先,您需要正确使用lamba方法,例如: .Where(c =&gt; c.Actors ...) 其次,这里 c.Actors.SearchActor 你试图访问列表上的属性SearchActor ..显然没有。
请改为尝试:
var SearchActor = "Arnold";
if (!String.IsNullOrEmpty(SearchActor))
{
var allMovies = Movie.Where(m => m.Actors.Any(a => a.Name.Contains(SearchActor))).ToList();
}