C# C Core 2.0-基于另一个模型中的数据从一个模型中获取数据?

C# C Core 2.0-基于另一个模型中的数据从一个模型中获取数据?,c#,entity-framework,linq,asp.net-core-2.0,.net-core-2.0,C#,Entity Framework,Linq,Asp.net Core 2.0,.net Core 2.0,我正在使用.NETCore2.0 我有两张桌子: Movies ID | Name | AuthorId ---------------------- 1 | AAAA | 1 2 | BBBB | 1 3 | CCCC | 1 4 | DDDD | 2 Reviews ID | FilmId | AuthorId | SomeText ------------------------------------ 1 | 1 | 1 | this is hor

我正在使用.NETCore2.0

我有两张桌子:

Movies
ID | Name | AuthorId
----------------------
1  | AAAA | 1
2  | BBBB | 1
3  | CCCC | 1
4  | DDDD | 2

Reviews
ID | FilmId | AuthorId | SomeText
------------------------------------
1  | 1        | 1        | this is horror
2  | 1        | 2        | this is comendy
3  | 3        | 1        | it may be horror
4  | 3        | 2        | it is definitely comedy, not horror
我的模型是:

class Movie {
    [Key]
    public int ID { get; set; }
    public string Name { get; set; }
    public int AuthorId { get; set; }

    public List<Review> Reviews { get; set; }
}

class Review {
    [Key]
    public int ID { get; set; }
    public string SomeText { get; set; }
    public int AuthorId { get; set; }

    public int FilmId  { get; set; }
    public Movie Film { get; set; }
}
我的背景是:

public class MyContext : DbContext
    {
        public DbSet<Movie> Movie { get; set; }
        public DbSet<Review> Review { get; set; }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Movie>().HasMany(m => m.Reviews).WithOne(r => r.Film);
        }
    }
现在我想提出这样的疑问:

选择*FROM Movies m JOIN Reviews r ON m.ID==r.FilmId其中 m、 AuthorId=1且r.AuthorId=3或r.SomeText(如“%1%”)

预期结果应为CCCC

目前我有:

List<Movie> movies = _context.Movie.Include(m => m.Reviews.Select(r => r.AuthorId == 3 || r.SomeText.Contains("definitely"))).ToList();
如何用这个符号表示上述查询

然而,我确实得到:

InvalidOperationException:属性表达式'm=>{from Review r在m中。审阅选择[r]。AuthorId==\u用户ID\u 0或LSE [r] .SomeText.Contains有限}无效。表情 应表示属性访问:“r=>r.MyProperty”。更多 有关包含相关数据的信息,请参阅


我读过这篇文章,但它什么也没给我。

我认为这个linq查询返回了正确的结果,因为我无法测试它

List<Movie> movies = _context.Movie.where(m => m.AuthorId == 1 && m.Reviews.Any(r => 
r.AuthorId == 3 ||  r.SomeText.Contains("definitely"))).ToList();
其中,不选择