【问题标题】:FirstorDefault with Multiple && conditions?FirstorDefault 具有多个 && 条件?
【发布时间】:2021-01-21 16:00:08
【问题描述】:

由于某种原因,我无法在 FirstorDefault 中实现多个条件,因此我的功能无法正常工作。我在 StackOverflow 上看到了人们能够做到的其他示例,但我做不到。如果我只测试 && Year 或 && Org,它可以工作。但是当我添加第二个 && 语句时,它什么也不做。对于我发送的数据,所有条件都成立,并且我已经反复确认了这一点。

我可以做些什么来完成这项工作?

    public partial class Cmp_REC
{
    public int cId { get; set; }
    public int Org { get; set; }
    public int Year { get; set; }

    public virtual Cmp_Accounts Cmp_Accounts { get; set; }
}

public static void DeleteREC(int cId, int Year, int Org)
{
    using (Entities dataContext = new Entities())
    {
        Cmp_REC toDelete = dataContext.Cmp_REC.FirstOrDefault(c => c.cId == cId && c.Org == Org && c.Year == Year);
        if (toDelete != null)
        {
            dataContext.Cmp_REC.Remove(toDelete);
            dataContext.SaveChanges();
        }
    }
}

【问题讨论】:

  • 你检查到删除了吗。也许它是空的。你能展示你的 Cmp_REC 课程吗?
  • @Sergey 你去吧。如果我只有 c => c.cId == cId && c.Org == Org 或 c => c.cId == cId && c.Year == Year,它就可以工作
  • 这就是为什么我怀疑在语法方面发生了什么事。
  • 你没有回答这个问题。当您有 3 个参数时,toDelete 是否为空?当你有2个参数时它是空的吗?我只是想找到发生错误的地方。是在选择还是添加。
  • 不为空。 @Sergey

标签: asp.net entity-framework


【解决方案1】:

我猜您要删除的记录与您之前选择的记录不同。并且此记录由您的数据库中的另一个表 Cmp_Accounts 使用。这就是为什么你不能删除它。您必须首先删除对该记录的所有引用。

【讨论】:

    【解决方案2】:

    我解决了这个问题。显然,它需要以与从函数发送的相同顺序列出变量。现在可以使用了。

    public static void DeleteREC(int cId, int Year, int Org)
    {
        using (Entities dataContext = new Entities())
        {
            Cmp_REC toDelete = dataContext.Cmp_REC.FirstOrDefault(c => c.cId == cId  && c.Year == Year && c.Org == Org);
            if (toDelete != null)
            {
                dataContext.Cmp_REC.Remove(toDelete);
                dataContext.SaveChanges();
            }
        }
    }
    

    【讨论】:

    • 可能您还更改了其他内容,因为订单不能成为问题
    • @HansKesting 不。这就是问题所在。它以错误的顺序发送值。我在调试时用断点确认了它。对不起,你错了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 2016-03-04
    相关资源
    最近更新 更多