我有一个dal方法来检索项目。DAL方法中存在项,但不在调用代码中。怎么可能呢?
呼叫代码:

IEnumerable<InstallationSummary> installationSummaryList =
InstallationSummaryLogic.GetByServerAppAndGroup(appServer, appWithValidGroup);

证明项目确实存在的DAL方法:
调用代码,不显示任何项。他们去哪儿了?
(这是同一行显示在这个问题的顶部。)
在dal方法和调用代码之间唯一的东西是一个简单的传递逻辑类。为了完整起见,我将其包含在这里:
    public static IEnumerable<InstallationSummary> GetByServerAppAndGroup(ApplicationServer appServer, ApplicationWithOverrideVariableGroup appWithGroup)
    {
        return DataAccessFactory.GetDataInterface<IInstallationSummaryData>().GetByServerAppAndGroup(appServer, appWithGroup);
    }

编辑-显示整个DAL方法
public IEnumerable<InstallationSummary> GetByServerAppAndGroup(ApplicationServer appServer, ApplicationWithOverrideVariableGroup appWithGroup)
{
    IQueryable<InstallationSummary> summaries = this.Database.InstallationSummaries
        .Include(x => x.ApplicationServer)
        .Include(x => x.ApplicationWithOverrideVariableGroup.Application)
        .Include(x => x.ApplicationWithOverrideVariableGroup.CustomVariableGroup)
        .Where(x => x.ApplicationServer.IdForEf == appServer.IdForEf)
        .Where(x => x.ApplicationWithOverrideVariableGroup.Application.IdForEf == appWithGroup.Application.IdForEf);

    if (appWithGroup.CustomVariableGroup == null)
    {
        return summaries.Where(x => x.ApplicationWithOverrideVariableGroup.CustomVariableGroup == null);
    }

    return summaries
        .Where(x =>
        x.ApplicationWithOverrideVariableGroup != null &&
        x.ApplicationWithOverrideVariableGroup.CustomVariableGroup != null &&
        x.ApplicationWithOverrideVariableGroup.CustomVariableGroup.IdForEf == appWithGroup.CustomVariableGroup.IdForEf);
}

最佳答案

您的GetByServerAppAndGroup方法使用一个summaries调用过滤Where(我们看不到它到底是什么-如果您剪切并粘贴方法本身,这将很有帮助)。我的猜测是summaries中没有一个结果通过Where调用中的筛选器。

07-28 01:38
查看更多