매우 기본적인 식 트리 생성기로 작업하여 SQL 식을 만듭니다.Guid 속성과 String 값을 비교 한 다음 TSQL로 변환하는 식
var propertyInfo = typeOf(User).GetProperties().First(p=>p.Name=="Name");
Expression.Call(
Expression.Property(Expression.Parameter(typeof(User), "val"), propertyInfo),
typeof(string).GetMethod("Contains"),
Expression.Constant("john")
)
:
예를 들어, String
값 "존"대 "이름"이라는 String
속성을 비교 가상 클래스 User
에 대한 식을 만드는 데,이 같은 코드의 조각을 사용하여 어떤 생성과 비슷한 (코드와 EF
개입의 일부 라인 후) :
[...] Name LIKE '%john%' [...]
내 문제가 Guid
속성입니다 ...
나는 비슷한 아주 간단한 SQL
쿼리를 생성하기 위해, String
값 N 대 Guid
특성을 비교하기 위해 표현식을 구성하는 방법을 figurate 수 없습니다 내가 Guid
과 String
사이 Equals
방법을 사용할 수 없습니다
[...] Id='38EB4D06-E50B-4C7A-80FF-A6350051682A' [...]
. ... 임 정말 우둔, 어떤 제안이 잘
Guid를 문자열로 변환하기 위해 ToString()을 시도 할 수 있습니다 –
[SqlFunctions.StringConvert] (http://msdn.microsoft.com/en-us/library/dd466166.aspx)로 시도한 이유는' ToString()'[엔티티 질의를위한 LinQ에서는 구현되지 않았다.] (http://stackoverflow.com/questions/26146272/cant-use-tostring-in-linq-to-entities-query). ... –