저는 문서 데이터베이스를 배우고 있으며 Visual Studio에서 Marten/Linq를 사용하고 있습니다. 데이터베이스가 Postgres/PGAdmin을 통해 실행 중입니다. 내 데이터베이스는 축구 (미국이 아닌) 리그, 팀, 선수 및 관리자입니다. 여러 매개 변수를 기반으로 쿼리를 작성하려고합니다. 나는 단수의 매개 변수를 꽤 잘 가지고있다.Visual Studio에서 Marten과 Linq를 사용하여 여러 매개 변수 쿼리
List<Player> englishPlayers = finalDb.Query<Player>().Where(x => x.Nationality.Contains("English")).ToList();
이 쿼리는 문서 데이터베이스에서 국적이 "영어"로 설정된 모든 플레이어의 목록을 만듭니다.
플레이어는 국적 "필드"가있는 내 클래스/테이블입니다. 내가 뭘 하려는지 여러 매개 변수를 기반으로 쿼리입니다. 예를 들어, int 또는 bool 인 여러 "필드"가 있습니다. 예를 들어, 생애와 함께 특정 국적의 모든 플레이어에게 목표> 100을 표시하는 쿼리를 작성하려면 어떻게해야합니까?
나는 약 1 시간 동안 구글을 검색해 보았고, 제안 된 유사한 질문을 읽었지만, 대부분의 질문은 마틴이 사용되는 것을 설명하지 않는다.
나는 예를 들어, 그들을 결합 먼저 개별 쿼리하여 분해 및 시도했다 :
Player m4 = finalDb.Query<Player>().SelectMany(e => e.lifetimeGoals
.Where(p => e.lifetimeGoals >= 0));
그러나,이에 대한 정의를 포함하지 않는
지능라는 오류가 발생합니다 where 및 no extension method '여기서' 'int'유형의 첫 번째 인수를 수락합니다.
이 용어에 대한 나의 용어는 약간이지만 희망 사항은 지침을 찾을만큼 명확합니다. 플레이어에 대한
클래스 : 당신은 정수에 .Where()
을 사용할 수 없습니다
static void Main(string[] args)
{
string connectionString = ConfigurationManager.ConnectionStrings
["FinalProjectDB"].ConnectionString;
IDocumentStore store = DocumentStore.For(connectionString);
using (var finalDb = store.OpenSession())
{
Player m4 = finalDb.Query<Player>().SelectMany(p => p.lifetimeGoals)
.Where(p => p.lifetimeGoals >= 0 && p.myString.Equals("valueToCheck"));
Console.ReadLine();
}
큰, 좋아. 감사. 동일한 문에서 문자열 검사와 int 검사를 결합하는 것은 어떻습니까? 나는 당신의 응답을 기반으로 지능 검사를 결합하는 방법을 알아 냈하지만이 같은 쿼리 내부 문자열에 대한 검사를 통합 할 때 그것은 나에게 말한다 한 –
죄송합니다, 그것은 나를 내 다른 게시물을 편집 할 수없는 이유 확실하지 오류가 ToList '없이 확장 메서드'첫 번째 의견에 대한 내 편집을 확인 –
부울 '' '의 첫 번째 인수 유형을 받아들이는'ToList " '부울이'에 대한 정의를 포함하지 않는"입니다. 어떻게 당신은 ('.ToList를 사용합니까)'명세서에? – RandomStranger