2017-03-01 8 views
1

나는 본질적으로 매개 변수로 문자열을 사용하는 방법을 가져 오기 호출 PetaPoco에서 sql builder를 어떻게 사용합니까?

public List<T> Fetch<T>(Sql sql) 
{ 
      return Fetch<T>(sql.SQL, sql.Arguments); 
} 

petapoco

이 코드가 있습니다. 그런데 왜 petapoco에 SQL 빌더가 필요합니까?

답변

1

Sql.Builder는 fluent API이며 조건부로 SQL을 빌드 할 수 있습니다. 형식화 SQL 문자열을 쉽게 만들고 SQL injection에서 보호하기 위해 적절한 매개 변수 대체를 사용하는 메커니즘을 제공합니다.

예는

var sql = PetaPoco.Sql.Builder() 
    .Select("*") 
    .From("Orders.Product") 
    .Where("OrderID = @0", id); 

From PetaPoco documentation을 테스트하지 :

는 반환에게 POCO의

+0

의 목록 <>를 가져 오기 당신이 당신의 대답을 @william 감사드립니다. Fetch 메서드의 문자열 오버로드에있는 매개 변수를 사용하여 SQL 주입을 방지 할 수도 있습니다. 그래서 그것은 단지 SQL 문자열을 포맷하는 것입니까? – Jay

+0

조건부로 SQL을 빌드 할 수 있습니다. 그래서 네가 빌더에게 넘겨 준 내용을 기반으로 네, SQL을 올바르게 포맷하므로 걱정하지 않아도됩니다. 이것이 기본 전제입니다. –