在ICollection实体中搜索

时间:2016-06-17 09:42:50

标签: asp.net entity-framework linq collections

我的模型中有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();

2 个答案:

答案 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();
}