데이터베이스에 두 개의 테이블이 있습니다. 티켓 및 티켓 번호. Linq에게이 함수에 전달 된 숫자와 일치하는 숫자를 가진 티켓의 수를 계산하고 싶습니다. 얼마나 많은 숫자가 일치해야하는지 모르기 때문에, Linq는 동적이어야합니다 ... 내 이해에.일치하는 숫자를 계산하는 동적 Linq 작성 방법
가 이제 데이터베이스에 3 티켓은 내가 숫자 3과 4 함수가 2를 반환해야합니다이 경우(1) 1 2 3 4
(2) 1 3 4 6 7
(3) 1 2 3
을 가지고 모든 사람을 계산하려면, 예를 들어
public int CountPartialMatchingTicket(IList<int> numbers)
{
// where's the code? =_=;
}
말, 티켓 (1)과 (2)는 일치하는 번호를 가지고 있기 때문입니다. 나는 동적 사용한 적이
Ticket:
TicketId, Name, AddDateTime
TicketNumbers:
Id, TicketId, Number
: 다른 경우 1, 2, 3 일치하도록 요구한다면, 다시 우리가 여기
2를 반환해야처럼 데이터베이스에있는 두 테이블을 보면 무엇 Linq 전에, 그래서 경우에 대비해서 이것이 내 CS 파일의 맨 위에있는 것이다. 하지만
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using LottoGen.Models;
using System.Linq.Dynamic;
것부터 먼저, 난 내가 숫자의 고정 금액에 대한 Linq에 라인을 작성해야 방법을 모르겠어요. 나는 SQL이 다음과 같을 것이라고 생각한다.
SELECT TicketId, COUNT(0) AS Expr1
FROM TicketNumber
WHERE (Number = 3) OR (Number = 4)
GROUP BY TicketId
그러나 이것은 내가 원하는 것도 아니다. 위 쿼리는 나에게 3 또는 4가있는 티켓을 가져다 줄 것입니다.하지만 두 개의 티켓이 모두 필요합니다. 그리고 그것은 어떻게 든 하나의 카운트를 반환하기 위해 중첩되어야한다고 생각합니다. 그 기능을 완성하기 위해 상상력을 사용해야한다면 다음과 같이 될 것입니다.
public int CountPartialMatchingTicket(IList<int> numbers)
{
string query = "";
foreach(int number in numbers) {
query += "Number = " + number.ToString() + " AND ";
}
// I know.. there is a trailing AND.. lazy
int count = DbContext.TicketNumbers.Where(query).Count();
return count;
}
오 잠깐. 거기에 동적 Linq가 ... 위의 내가 PHP에서 할 것이라고 뭔가 그 쿼리 문을 분명히 아무것도 유용하지 않습니다 찾고 있습니다. 나는 무엇을하고 있는가? :(
하루의 끝에서, 나는 출력이처럼 보이는 웹 페이지에 작은 테이블을 원하는
Ticket Matching Tickets
-----------------------------------
3 4 2
삼위 일체가 도움이
을 그것 때문에 지금 응용 프로그램에서 이상한 행동을하고 있습니다. 이 사실을 조금 더 이해하면 다시 연락해야 할 것입니다. –
답변으로 표시. 고맙습니다! 괜찮 으면이 쿼리를 특정 AddDateTime (하루 종일)에서 만들어진 티켓으로 어떻게 제한합니까? –
답변이 업데이트되었습니다. –