【问题标题】:LLBL: Delete Where NOT INLLBL:删除不在的地方
【发布时间】:2009-04-28 19:27:33
【问题描述】:

我正在尝试在 LLBL 中执行以下查询,但运气不佳。

DELETE FROM dbo.MyTable WHERE MyTableId NOT IN ('39', '43', '44')

基本上,我已经到了这一点:

private static void Delete(MyTableCollection newRecs)
{
    PredicateExpression filter = new PredicateExpression();
    MyTableCollection allRecords = new MyTableCollection();

    filter.Add(new FieldCompareSetPredicate(
                   MyTableFields.MyTableId,
                   MyTableFields.MyTableId,
                   SetOperator.In, null, null, string.Empty, 0, null, true));

    allRecords.DeleteMulti(filter);
}

我不确定上面的代码是否正确,但我不明白如何提供 newRecs 作为我的 IN 子句中使用的记录集合。我什至接近吗?

任何帮助将不胜感激。

注意:我意识到我在我的 SQL 示例中使用了静态 ID,但我确实在尝试使用存储在 newRecs 参数中的 ID。

【问题讨论】:

    标签: .net llblgenpro


    【解决方案1】:

    为了让“不在”起作用,您必须传递某种数组。试试这样的:

    List<int> idsNotToDelete = new List<int>();
    foreach (MyTableEntity ent in newRecs)
    {
         idsNotToDelete.Add(ent.MyTableId);
    }
    PredicateExpression filter = new PredicateExpression(MyTableFields.MyTableId != idsNotToDelete)
    MyTableCollection allRecords = new MyTableCollection();
    allRecords.DeleteMulti(filter);
    

    【讨论】:

      猜你喜欢
      • 2019-01-08
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      • 2020-06-05
      相关资源
      最近更新 更多