1
私は次のような結果を得る実行した場合、クエリ、持って存在していない場合は個別値を選択します。
をクエリ:他の場所
SELECT FROM Ticket WHERE ClosedOn IS NULL AND AssignedToTeamID = 1 AND TicketPriorityID = 2
結果:
を今私たちが望むのは次のクエリです:
クエリ:
SELECT DISTINCT ServerID, SiteID,
Case when(DetectorID-DetectorID%10) not in
(Select Distinct SiteID FROM Ticket
where SiteID is not NULL
and ClosedOn is null
and AssignedToTeamID = 1
and TicketPriorityID in (1, 2))
THEN DetectorID-DetectorID%10
end as DetectorID
FROM Ticket
where ClosedOn is null
and AssignedToTeamID = 1
and TicketPriorityID in (1, 2)
さて、これは私が(最初の結果がNULLである理由、NULL、NULLを知ってはいけない)を取得したい結果です。しかし、今はそれほど重要ではありません。
私の質問:
私は自分のコード内でクエリを得るのですか?
私が今持っている何を(最初のクエリの結果は):
User user = ObjectContext.Users
.Include("TeamMemberships")
.First(u => u.UserID == userID);
var teamIDs = user.TeamMemberships.Select(t => t.TeamID).ToList();
var test = ObjectContext.Tickets
.Include("TicketPriority")
.Include("TicketStatu")
.Include("TicketType")
.Include("Server")
.Include("Site")
.Include("Detector")
.Include("Detector.Site")
.Include("Detector.Track")
.Include("Team")
.Include("User")
.Include("User1")
.Where(t => (withinTeam.HasValue ? withinTeam.Value ? teamIDs.Contains((int)t.AssignedToTeamID) : !teamIDs.Contains((int)t.AssignedToTeamID) : true))
.Where(t => t.ClosedOn == null)
.Where(t => t.TicketPriorityID == 1 || t.TicketPriorityID == 2);
return test;
私はここでのif文/ケースを置く方法がわかりません。このような
** t.Id **はどこから来たのですか?どのように私はこれを返すのですか?変数x = infrontを代入してから、それを返します。 – Mitch
独自のクラスを作成し、匿名型の代わりに使用できます。これは単なる一般的なアプローチの例です。以下のコード中のtは、どこでの条件を意味します。 – oryol