다음 Linq-to-SQL 쿼리가 있습니다. # 5 행에서 내 Where 문에 나열된 조건이 충족되는 Packages 테이블에서 레코드 수를 가져 오려고합니다. 라인 # 5를 제외하고는이 코드에서 모든 것이 정확하다고 생각합니다. 나는 무엇을 잘못 했는가?이 Count 문을 Linq 내에서 Sql 코드로 수정하는 방법은 무엇입니까?
구독 테이블 : :
UserID | Boxes
001 5
002 25
003 5
var Overage = from s in db.Subscriptions
join p in db.Packages on s.UserID equals p.UserID
where
s.SubscriptionType != "PayAsYouGo" &&
(s.CancelDate == null || s.CancelDate >= day) &&
s.StartDate <= day && p.DateReceived <= day &&
(p.DateShipped == null || p.DateShipped >= day)
let AverageBoxSize = (p.Height * p.Length * p.Width)/1728
let ActiveBoxCount = p.Count()
select new
{
p,
AverageBoxSize,
ActiveBoxCount,
s.Boxes
};
오류 메시지가
편집 여기 내 질문을 동반 한 예이다 "알 수없는 방법 카운트() Foo.Data.Package의"입니다
박스는 각 사용자가 자신의 서브 스크립 션하에 허용되는 최대 숫자입니다.
개패키지 표
UserID | PackageID | Height | Length | Width
001 00001 10 10 10
001 00002 10 10 10
001 00003 20 10 10
003 00004 10 20 20
003 00005 10 10 10
원하는 쿼리 결과 002이 표시되지 않는
UserID | Boxes | Box Count | Average Box Size
001 5 3 1,333
003 5 2 2,500
사용하기 때문에 절은 사용자
네가 뭘 잘못 했니? 오류가 있습니까? – leppie
무엇이 오류입니까? –
이 산출량은 어떻게됩니까? 0, 1, ... 오류가 발생합니까? – Josh