2017-11-08 9 views
0

을 "어떤 속성 또는 필드 ' 가' '형태로 존재하지 않는다"나는 dynamic-linq 라이브러리를 사용하여 쿼리 문을 작성. 패스 문자열은 오류가 발생합니다 : 현재

그리고이 쿼리를 실행할 때이 문제가 있습니다 Table1 내부의 열 이름 : 내 데이터베이스에

  • Column2을 테이블 이름 : 참고로

    query = query.Where("Table1.Column2.Contains(@0)", new string[] { "test" }); 
    

    :

    • Table1

    결과적으로 thro w : 오류 :

    No property or field 'Table1' exists in type 'Table1'

    확실한 지명입니다. 내 친구, 그는 또한 정확히 같은 라이브러리를 사용하고 내가 좋아하는 다른 방법으로 그것을 할 때 그는 MSSQL 2014 년 내가 MSSQL 2008 년

    을 사용하고, 다른 데이터베이스에 성공적으로 실행할 수 있습니다

    query = query.Where("Column2.Contains(@0)", new string[] { "test" }); 
    

    잘 작동합니다.

    궁금한 점은 제 경우에는 대신 첫 번째 방법을 사용해야한다는 것입니다. 그래서 내가 뭘 잘못 했니?

  • 답변

    0

    제 생각에 Dynamic Linq가 개체 인에서 계속 작동 중이며 직접 쓰는 것을 SQL에 전달하지 않습니다. 따라서 기본 객체의 속성 인 에만 조건을 추가 할 수 있습니다.. 이제 이것들은 데이터베이스에 여러 열에서 채워 것으로 정의 될 수 있지만, 난 당신이 기본적으로 이런 종류의 일을하려고한다고 생각 ... 수

    가 없습니다 :

    class x 
    { 
        int SomeProperty{get;set;} 
    } 
    ... 
    ... 
    var instance = new x(); 
    instance.SomeProperty = 1; 
    
    //compile Error: x is not a property of an instance of x 
    if (instance.x.SomeProperty==1) 
    { 
        // ..Do things 
    }