으로 바꿔야합니다. 쿼리해야하는 여러 데이터 소스가 있으며 모든 쿼리를 2 개 조건 이하의 매우 간단한 식으로 제한 할 수있었습니다. 내 람 바어 식의 전형적인 복잡성의 예는 다음과 같습니다 내 비 SQL 데이터 소스에아주 간단한 Expression <Func <T, bool>>을 SQL where 절
b => b.user == "joe" && b.domain == "bloggs.com"
나는 목록을 객체와 같은 LINQ 쿼리를 사용하도록 변환 할 수 있습니다로 확인 해요 :
public override T Get(List<T> assets, Expression<Func<T, bool>> whereClause)
{
return assets.Where(a => whereClause.Compile()(a)).FirstOrDefault();
}
내 문제는 관계형 데이터베이스를 쿼리해야 할 때입니다. PostgreSQL과 MySQL에만 관심이 있습니다. 조금 어려움을 겪었습니다. 나는 Linq에게 nHibernate를 "작동 중"으로 가지고 있지만, 데이터베이스에 액세스하는 것을 멈추거나 접속을 멈추거나 연결을 닫을 수없는 문제를 가지고있다. 베타 버전에서 기대할 수있는 전형적인 것들이다. 그래서 나는 불평하지 않는다.
내 쿼리가 매우 간단하고 SQL을 직접 작성하기 때문에 제 표현식을 SQL로 바꿀 수있는 비교적 쉬운 방법이 있는지 알고 싶습니다.
나는 빠른 검색이 있었고 몇 가지 샘플을 발견했으며, 물론 이미 Linq-to-SQL 엔진이 있기 때문에 완료 할 수 있음을 알고 있습니다. 문제는 그것이 하루 또는 그 이하의 노력으로 채찍질 할 수있는 것인지 아닌지입니다. 그것이 내가 Linq-to-SQL 호환 라이브러리를 찾고로드가 제대로 작동한다고 가정하여 테스트하는 데 걸릴 것이라고 예상 할 수 있습니다. 큰 성능 고려 사항이 있으므로 ORM을 실행하는 대신 원시 SQL을 사용하는 것이 좋습니다.
어디 조항 SQL 위해 LINQ 공급자를 구축하거나 람다를 변환 하시겠습니까? –
난 단순한 where 절을 만들고 싶다. LINQ 공급자를 구축하고 싶지 않습니다. 저는 그것이 심각한 사업이라는 것을 알고 있습니다. – sipwiz