0

我有一个无法正常工作的函数,因为由于某种原因我无法在 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();
        }
    }
}
4

2 回答 2

0

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

于 2021-01-21T17:05:33.517 回答
0

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

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();
        }
    }
}
于 2021-01-21T22:15:39.910 回答