从多个表中选择最大日期
本文关键字:日期 选择 | 更新日期: 2023-09-27 18:15:59
是否可以将其转换为仅查询数据库一次的实体框架查询?
select max(TableADate) latestTableADate, max(TableBDate) latestTableBDate
from
(
select max(a.ModifiedDate) TableADate, null TableBDate
from TableA a
union all
select null, max(b.ModifiedDate)
from TableB b
) data
目的是用一条sql语句从多个表中获取最新的ModifiedDate,因此实体框架不需要多次访问数据库来获取数据。
我需要知道其中一个表最后一次更新是什么时候。
更新:
我使用DbContext.Database.SqlQuery
结束了以下操作:
var output = db.Database.SqlQuery<DateTime>
("select data from (" +
"select 1 orderBy, max(ModifiedDate) data from TableA" +
"union all " +
"select 2, max(ModifiedDate) from TableB " +
") temp order by orderby").ToList();
data.TableADate = output[0];
data.TableBDate = output[1];
您可以使用DbContext.Database.SqlQuery
方法执行与您列出的查询类似的查询。您需要更改它以以某种顺序返回日期或使用我们的参数。