【发布时间】:2012-02-08 01:45:48
【问题描述】:
如何使用 C# 和 LINQ 编写此 SQL 语句?我正在查询一个 Oracle 数据库,并且该表有多个记录修订。因此,我只想要表中包含的每条记录的当前版本。
SQL 如下所示:
select TP_ID, TP_TEXT, TP_DEFN_SAKEY
from TP_DEFN tp1
where tp1.TP_ACTIVE_FLAG = 'Y' and
tp1.FAMILY_ID = 1 and
tp1.TP_DEFN_REV_DTS = (select max(TP_DEFN_REV_DTS)
from TP_DEFN tp2
where tp2.family_id = tp1.family_id and tp2.tp_id = tp1.tp_id )
order by TP_ID
TP_DEFN_REV_DTS 是存储当前修订的日期时间字段。
我是 LINQ 的初学者,一直在努力寻找可行的解决方案。每次我尝试在 LINQ 查询中进行分组时都会出现错误
不支持分组方式
【问题讨论】:
-
您能添加一个您之前尝试过的代码示例吗?
-
您是否将实体框架与 Oracle Provider 一起使用?
-
其实
GroupBy可能就是这样;您的 Linq 提供商不支持。我至少在 NHibernate 提供程序中体验过这一点。 -
抱歉耽搁了各位,我们正在使用 EF 与我们的 Oracle 数据库进行交互。我们也在使用 ODP.Net。
标签: c# linq exception-handling group-by oracle11g