为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
哆啦的时光机 2021-06-30 14:57:16
我正在使用 .NET Core 2.0我有2张桌子:MoviesID | Name | AuthorId----------------------1  | AAAA | 12  | BBBB | 13  | CCCC | 14  | DDDD | 2ReviewsID | FilmId | AuthorId | SomeText------------------------------------1  | 1        | 1        | this is horror2  | 1        | 2        | this is comendy3  | 3        | 1        | it may be horror4  | 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);        }    }现在我想做这样的查询:SELECT * FROM Movies m JOIN Reviews r ON (m.ID == r.FilmId) WHERE m.AuthorId = 1 AND (r.AuthorID = 3 OR r.SomeText LIKE '%definely%');预期的结果应该是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 in m.Reviews select (([r].AuthorId == __user_ID_0) OrElse [r].SomeText.Contains("肯定"))}' 无效。该表达式应表示属性访问:'r => r.MyProperty'。有关包含相关数据的详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=746393。我读过这篇文章,但它什么也没给我。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信