[焦头烂额]Linq to entity和视图的执行结果不一样,求解惑!!!

mindsky 2014-07-03 03:34:41
本人有一视图:

SELECT row_number() OVER (ORDER BY dbo.zaojia_gclqd.[file_name]) AS ID, dbo.zaojia_gclqd.[file_name], max(dbo.zaojia_gclqd.create_datetime)
AS create_datetime, '工程量清单' AS tablename
FROM dbo.zaojia_gclqd
GROUP BY dbo.zaojia_gclqd.[file_name]
UNION ALL
SELECT row_number() OVER (ORDER BY dbo.zaojia_gclzhibiao.[file_name]) AS ID, dbo.zaojia_gclzhibiao.[file_name],
max(dbo.zaojia_gclzhibiao.create_datetime) AS create_datetime, '工程量指标' AS tablename
FROM dbo.zaojia_gclzhibiao
GROUP BY dbo.zaojia_gclzhibiao.[file_name]
UNION ALL
SELECT row_number() OVER (ORDER BY dbo.zaojia_rgdj.[file_name]) AS ID, dbo.zaojia_rgdj.[file_name], max(dbo.zaojia_rgdj.create_datetime)
AS create_datetime, '人工单价' AS tablename
FROM dbo.zaojia_rgdj
GROUP BY dbo.zaojia_rgdj.[file_name]
UNION ALL
SELECT row_number() OVER (ORDER BY dbo.zaojia_zhibiao.[file_name]) AS ID, dbo.zaojia_zhibiao.[file_name], max(dbo.zaojia_zhibiao.create_datetime)
AS create_datetime, '造价指标' AS tablename
FROM dbo.zaojia_zhibiao
GROUP BY dbo.zaojia_zhibiao.[file_name]
UNION ALL
SELECT row_number() OVER (ORDER BY dbo.cost_analysis.[file_name]) AS ID, dbo.cost_analysis.[file_name], max(dbo.cost_analysis.create_datetime)
AS create_datetime, '分析报告' AS tablename
FROM dbo.cost_analysis
GROUP BY dbo.cost_analysis.[file_name]


作用就是过滤每张表的file_name字段,取不重复的值,最后把几张表的结果union一下,现在发现在SQL查询分析器里得到的结果正确,是:
1 1.xlsx 2014-07-03 09:13:48.003 工程量清单
2 2.xlsx 2014-07-03 09:16:01.020 工程量清单
3 3.xlsx 2014-07-03 09:17:34.527 工程量清单
4 4.xlsx 2014-07-03 09:21:20.133 工程量清单
5 工程量清单模版.xlsx 2014-07-02 16:48:05.203 工程量清单
1 file1 2014-07-01 11:42:18.007 工程量指标
1 file1 2014-07-01 14:43:18.203 人工单价
1 造价指标模版.xlsx 2014-07-03 14:00:49.477 造价指标

但是在Linq to entity里执行结果不正确,变成:
1 1.xlsx 2014-07-03 09:13:48.003 工程量清单
1 1.xlsx 2014-07-03 09:13:48.003 工程量清单
1 1.xlsx 2014-07-03 09:13:48.003 工程量清单
1 1.xlsx 2014-07-03 09:13:48.003 工程量清单
1 1.xlsx 2014-07-03 09:13:48.003 工程量清单
1 file1 2014-07-01 11:42:18.007 工程量指标
1 file1 2014-07-01 14:43:18.203 人工单价
1 造价指标模版.xlsx 2014-07-03 14:00:49.477 造价指标

经分析,同事认为是因为实体没有主键引起的,问题是这个SQL语句我不知道怎么来指定主键,
最后没有办法在linq里用db.ExecuteStoreQuery()这个直接传SQL语句解决了
现在请教大神如果直接在linq to entity里,应该如何解决这个问题呢??
...全文
152 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunny906 2014-07-07
  • 打赏
  • 举报
回复
对照数据表结构,再看看dbml里的实体关系,是不是在建实体关系的时候漏了某些关系映射
mindsky 2014-07-07
  • 打赏
  • 举报
回复
没人解答吗?
wylp_19 2014-07-03
  • 打赏
  • 举报
回复
帮你顶顶...............

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧