당신은 다음과 같이 식 트리를 구축하여 이러한 방법을 쓸 수 있습니다 Visual Studio에서 생성 된 DataContext에 대해 GetProperties로 변경할 수 있습니다.
이 필드를 string.Concat 문에 전달하는 식을 만들어야합니다. 후자가 문자열 배열을 받아들이면 NewArrayInit 표현식을 만들어 배열을 만듭니다.
다음으로 문자열을 함께 결합하는 Concat 메서드를 호출하고 string.Contains 메서드를 호출하여 문자열 리터럴이 우리가 만든 식에 있는지 여부를 테스트합니다.
다음은 방법의 AdventureWorks에서 실행하는 방법은 다음과 같습니다
void Main()
{
Addresses.Where (AnyColumnContains<Address> ("Seattle")).Dump();
}
람다 번역 :
Addresses
.Where (
entity =>
String
.Concat (new String[] { entity.AddressLine1, entity.AddressLine2,
entity.City, entity.PostalCode })
.Contains ("Seattle")
)
SQL 번역 :
-- Region Parameters
DECLARE @p0 NVarChar(1000) = '%Seattle%'
-- EndRegion
SELECT [t0].[AddressID], [t0].[AddressLine1], [t0].[AddressLine2], [t0].[City],
[t0].[StateProvinceID], [t0].[PostalCode], [t0].[rowguid] AS [Rowguid],
[t0].[ModifiedDate]
FROM [Person].[Address] AS [t0]
WHERE ((([t0].[AddressLine1] + [t0].[AddressLine2]) + [t0].[City]) + [t0].[PostalCode])
LIKE @p0
현재 가지고있는 코드를 제시해주십시오. 어떤 데이터 구조에 테이블이 있습니까? –
나는 당신을 정확하게 이해했는지 알지 못하지만 질문에 몇 가지 정보를 추가했습니다. – Joe
어떤 컨텍스트에서 'ATable'입니까? LINQ2SQL? EF? 'DataTable '? ...? –