【问题标题】:Select Data based on related data exist根据存在的相关数据选择数据
【发布时间】:2020-01-06 15:44:36
【问题描述】:

我想根据存在的相关数据选择记录。

var data = await _dbContext
.MyData
.Include(d => d.Related)
.Where(r => r.Related.Any())
.ToList();

选择应该只选择具有相关数据的数据。 有什么建议吗?

【问题讨论】:

  • 这个查询不行吗?它应该工作。但我会将 Include 子句放在 where 子句之后。

标签: .net linq .net-core entity-framework-core


【解决方案1】:
var data = await _dbContext
                .MyData
                .Where(x => x.Related != null)
                .Include(d => d.Related)
                .ToList();

没有任何限制,您将获得左连接 所以如果你使用[Required] 作为 RelatedId 的属性,你会得到一个左连接

同时研究下面的映射

//for left joins        
modelBuilder.Entity<MyData>()
            .HasOptional(a => a.Related) 
            .WithMany()
            .HasForeignKey(a => a.RelatedId);

//for inner join
modelBuilder.Entity<MyData>()
            .HasRequired(a => a.Related) 
            .WithMany()
            .HasForeignKey(a => a.RelatedId);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多