Bob*_*orn 4 c# linq ienumerable entity-framework iqueryable
我有一个DAL方法来检索项目.这些项目存在于DAL方法中,但不存在于调用代码中.怎么可能?
来电代码:
IEnumerable<InstallationSummary> installationSummaryList =
InstallationSummaryLogic.GetByServerAppAndGroup(appServer, appWithValidGroup);
Run Code Online (Sandbox Code Playgroud)
显示项目确实存在的DAL方法:

调用代码,不显示任何项目.他们去哪儿了?
(这与此问题顶部显示的行相同.)

DAL方法和调用代码之间唯一的东西是逻辑类,它只是一个传递.为了完整起见,我把它包含在这里:
public static IEnumerable<InstallationSummary> GetByServerAppAndGroup(ApplicationServer appServer, ApplicationWithOverrideVariableGroup appWithGroup)
{
return DataAccessFactory.GetDataInterface<IInstallationSummaryData>().GetByServerAppAndGroup(appServer, appWithGroup);
}
Run Code Online (Sandbox Code Playgroud)
编辑 - 显示整个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);
}
Run Code Online (Sandbox Code Playgroud)
您的GetByServerAppAndGroup方法summaries使用Where调用过滤(我们无法看到它的真实含义 - 如果您剪切并粘贴方法本身会很有用).我的猜测是,内部结果都没有summaries通过Where调用中的过滤器.
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |