【问题标题】:Entity Framework returning partially empty dataset实体框架返回部分空的数据集
【发布时间】:2013-08-20 01:27:31
【问题描述】:

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

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 是一种转换方法,它获取对象并将其转换为不同的模型。此代码没有引发异常。我删除了所有尝试/捕获以确保。

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

【问题讨论】:

  • 为什么需要 Skip(0)?如果只返回 rawItems 而不将其转换为 External Model,结果是否相同?
  • 这段代码代表了我用来执行的参数。在实际代码中,0 是一个变量,可能不是 0。我没有尝试只返回原始项目列表,但要让它工作,这意味着转换在三分之一的机器上表现不同。
  • 事实证明,在测试服务器上生成的查询与在其他服务器上生成的查询不同(不同的连接结构)。我仍在研究为什么它可能会有所不同。

标签: c# iis-7 entity-framework-5 .net-4.5 asp.net-web-api


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多