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
의도는 엔티티 프레임 워크는 데이터를 얻기 위해 데이터베이스에 여러 여행을하고되지 않도록 하나의 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];
EF로이 작업을 수행 할 수 있는지 여부는 확실하지 않지만 데이터베이스에'보기 '를 작성하여 확실히 수행 할 수 있습니다. – paul
네, 생각하고 있었지만 선택할 수있는 항목이 무엇인지보고 싶었습니다. 다른 접근 방식의 장단점을 살펴보십시오. – SBurris