C# 返回部分空数据集的实体框架

C# 返回部分空数据集的实体框架,c#,iis-7,entity-framework-5,.net-4.5,asp.net-web-api,C#,Iis 7,Entity Framework 5,.net 4.5,Asp.net Web Api,我有一个dbcontext,我查询它以返回一个模型,该模型包含所有项的总计数和一个表示项的子集的Ienumerable类型。我有三个环境:本地主机、开发和测试。使用相同版本的代码,Development和localhost返回完整的数据集,其中包含count和项目列表。测试返回正确的计数和一个空的项目列表。所有环境之间的代码集都是相同的。我已将所有环境指向同一个数据库,以隔离数据库中可能存在的任何问题。查询如下所示: var rawItems = context.entity.Where(x =

我有一个dbcontext,我查询它以返回一个模型,该模型包含所有项的总计数和一个表示项的子集的Ienumerable类型。我有三个环境:本地主机、开发和测试。使用相同版本的代码,Development和localhost返回完整的数据集,其中包含count和项目列表。测试返回正确的计数和一个空的项目列表。所有环境之间的代码集都是相同的。我已将所有环境指向同一个数据库,以隔离数据库中可能存在的任何问题。查询如下所示:

var rawItems = context.entity.Where(x => x.id == ID).OrderBy(x => x.id);
totalCount = rawItems.Count();
return rawItems.Skip(0).Take(25).Select(x => x.ToExternalModel())
ToExternalModel是一种转换方法,它将对象转换为不同的模型。此代码没有引发任何异常。我删除了所有的try/catch以确保安全


我真的认为这是一个环境问题,我真的不知道还有什么可能。

问题是实体框架模式中的外键定义不正确。我仍然不清楚为什么一些环境创建了一个工作版本的查询,而一个环境创建了一个非工作版本的查询。我将继续研究,但解决方案是修复外键定义。

为什么需要跳过(0)?如果只返回rawItems而不将其转换为外部模型,结果是否相同?这段代码表示我用于执行的参数。在实代码中,0是一个变量,可能不是0。我没有尝试只返回原始项列表,但如果这样做,则意味着转换在三台机器中的一台机器上的行为不同。结果表明,在测试服务器上生成的查询与在其他服务器上生成的查询不同(不同的联接结构)。我仍在研究为什么会有所不同。