2
是否有可能將其轉換爲僅查詢數據庫一次的實體框架查詢?從多個表中選擇最大日期
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
這樣做的目的是讓來自多個表的最新ModifiedDate一個SQL語句,從而實體框架是沒有做多次往返數據庫來獲取數據。
我需要知道上次更新其中一個表的時間。
更新:
我使用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];
不知道你是否可以用EF來做到這一點,但你可以通過在數據庫中創建一個'view'來完成它 – paul
是的,我在想,但我想看看我的選擇是什麼,看看不同方法的一些優缺點。 – SBurris