【问题标题】:Searching through SQL Table (LINQ or SqlCommand)搜索 SQL 表(LINQ 或 SqlCommand)
【发布时间】:2012-01-16 14:39:44
【问题描述】:

我正在尝试搜索一个项目表,有一个id,name和oldId(可以为null)

更新项目时,会使用新数据创建新行,并将项目的旧 id 设置为新行 OldId 字段。

但我不知道如何显示该项目的最新版本以及在搜索期间未编辑的那些。

var q = from i in Items where i.Name.Contains(x) select i;

想法?

【问题讨论】:

    标签: c# sql linq search filter


    【解决方案1】:

    如果我正确理解了您的问题,则在 OldId 列的任何其他行中未使用 ID 的每一行都是其项目的最新版本。

    这将导致以下结果:

    var latestRevisions = Items.Where(x => !Items.Any(y => y.OldId == x.Id));
    

    在 SQL 中,我会这样写:

    SELECT
        i.* 
    FROM
        items i
        LEFT OUTER JOIN items i2
            ON  i.item_id = i2.old_item_id
    WHERE
        i2.item_id IS NULL
    ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多