아래 쿼리에서 datetime 열의 시간 부분을 제거하여 고유 날짜 만 가져 오는 방법은 무엇입니까? 나도 몰라 (linq 쿼리 고유 날짜
var q = ctx.Table.Select(r => r.datetimefield.Date).Distinct();
아래 쿼리에서 datetime 열의 시간 부분을 제거하여 고유 날짜 만 가져 오는 방법은 무엇입니까? 나도 몰라 (linq 쿼리 고유 날짜
var q = ctx.Table.Select(r => r.datetimefield.Date).Distinct();
당신은 LINQ - 투 - SQL 또는 EF와 오류를 통해 걸림돌됩니다 r.datetimefield
가정
using (var ctx = new DBConn())
{
var q = ctx.Table.Select(r => r.datetimefield).Distinct();
}
r.datetimefield.Value.Date를 추가하면 작동합니다. – user285677
네,'datetimefield'가'Nullable
사실, 그것을 할 수있는 방법이 있습니다,이 답변을 참조하십시오 : http://stackoverflow.com/a/11525054/68818 –
는 시간 구성 요소를 제거합니다 DateTime.Date
를 사용할 수 날짜 시간입니다 어느 쪽을 사용하고 있는지). 똑 바른 해결책은 DateTime.Date
속성을 사용하는 것이지만, 두 ORM 모두에서 지원되지 않으며 SQL 메서드에 매핑되지 않습니다. 쿼리의
열망 평가 ToList
를 사용하여 :
var q = ctx.Table.ToList().Select(r => r.datetimefield.Date).Distinct();
데이터베이스에서 날짜 만 구성 요소를 자세히 설명하는 필드를 만들
두 가지 솔루션을 가지고있다. 이것은 데이터베이스에 머물면서 쿼리를 실행할 수있는 평소대로가는 길입니다.
당신이하지, 적어도와 수 linq-to-sql 또는 EF는 'Date'속성으로 SQL 메서드에 매핑되지 않습니다. – Femaref
date 속성은 value.date를 통해 사용할 수 있지만 "지정된 형식 멤버 'Date'가 LINQ to Entities에서 지원되지 않습니다." – user285677
예, 그게 내가 암시하는 것입니다. EF는 SQL 메소드에 맵핑하지 않으므로 쿼리에서 'Date' 특성을 사용할 수 없습니다. 나는 개인적으로 거대한 실수로 간주합니다. – Femaref
이 질문, 당신은 EntityFunctions.TruncateTime http://stackoverflow.com/questions/11524853/distinct-date-with-linq를 사용하는 것이 정답하고자했다 –