【问题标题】:How to get unique list from two column in Entity Framework core?如何从实体框架核心的两列中获取唯一列表?
【发布时间】:2018-10-10 18:00:12
【问题描述】:

我在数据库中有一个包含用户 ID 的 2 列的表。

Column A
1
2
3
4
5

Column B
4
2
6
1
7

现在我想获得一个包含不同 ID 的列表/数组。

预期的结果是

[1,2,3,4,5,6,7]

知道怎么做吗?

我正在寻找一个 Ef Core lambda/linq,它将在数据库端运行,而不必在内存中获取结果然后找到不同的列表,因为这将是昂贵的操作。

【问题讨论】:

  • 类似这样的 var blogs = context.Blogs .FromSql("SELECT distinct id FROM (select colA as id from tabA unionall select colB as id from tabB)") .ToList();
  • 子查询会降低性能但很好的方法。你能翻译成linq/lamda表达式吗
  • 试试这个 IList ids = ((from taba in ids select ids) .Union(from tabB in ids select (ids))).ToList();
  • 哇,我喜欢这种方法,我将使用它
  • 如果可行的话。让我知道我会将其添加为答案

标签: sql linq lambda linq-to-sql entity-framework-core


【解决方案1】:

你可以试试这个

var ids = Table1.Select( i => i.ColumnA )
                .Union( Table2.Select( j => j.ColumnB ) )
                .ToList()

【讨论】:

    【解决方案2】:

    使用union:

    select col1
    from t
    union  -- on purpose to remove duplicates
    select col2
    from t;
    

    然后您会将查询结果读入您的应用程序。

    【讨论】:

    • 非常感谢 linq 或 Lambda 表达式
    【解决方案3】:

    作为答案发布以供进一步参考:

    IList<String> ids = ((from taba in ids select ids) .Union(from tabB in ids select (ids))).ToList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 2019-08-21
      相关资源
      最近更新 更多