首页 > 解决方案 > 软删除数据但在获取时出现问题 | EF 核心,C#

问题描述

我有一个问题,我有 2 张桌子。如下。

public class Campaign
{
    public int CampaignId { get; set; }
    public string CampaignTitle { get; set; }
    public string CampaignObjective { get; set; }
    public int CurrencyId { get; set; }
    public Currency Currency { get; set; }
    public bool IsDeleted {get; set;}
}

public class Currency
{
    public int CurrencyId { get; set; }
    public string CurrencyTitle { get; set; }
    public bool IsDeleted {get; set;}
}

我正在使用 GlobalQuery Filters 过滤掉软删除的数据。

entityConfiguration.HasQueryFilter(x => x.IsDeleted == false); 

我正在使用以下查询

return await _context.Campaigns.Include(x => x.Currency).FirstOrDefaultAsync();

上述查询的最佳方法是什么,以获取相关数据(已删除并且也需要;在这种情况下为货币)

对于最终用户数据被删除,如果我获取并显示,它将混淆用户,如果我不获取并传递 Campaign.CurrencyId=null 则模型级别错误( CurrencyId != null )

任何帮助将不胜感激,我已经搜索但找不到解决方案或更好的方法。

标签: c#entity-framework-coresoft-delete

解决方案


必须有某种解决方案,IgnoreQueryFilters例如:

return await _context.Campaigns.IgnoreQueryFilters().Include(x => x.Currency).FirstOrDefaultAsync();

推荐阅读