2012-11-11 3 views
4

ORTHITE가 SQL에서 어떤 것을 읽고 어떻게 같은 모양의 POCO에 맞출 수 있는지 mythz의 게시물 here을 읽었습니다. 그거 좋네.ServiceStack 뷰에 대한 ORMLite 지원

반면에 ORMLite는 데이터베이스에 다시 저장할 때 이러한 "View POCO"를 어떻게 처리합니까? 그렇지 않은 테이블이기 때문에, 그들은 전망 할 수있다거나 그런 그냥 SQL SELECT 질의 할 수있다 :

, 그들은 연결 또는 다시 관련이없는거야 당신이 OrmLite와 함께 사용하는 포항 강판에 대한 특별 거기에 아무것도
var rows = dbCmd.Select<ShipperTypeCount>(
    "SELECT ShipperTypeId, COUNT(*) AS Total FROM Shippers GROUP BY ShipperTypeId ORDER BY COUNT(*)"); 

답변

6

OrmLite가 호출 사이에 캐시하는 숨겨진 마술 상태가 없기 때문에 어떤 필드가 매핑되는지 알 수 있습니다.

DB 호출마다 OrmLite는 POCO를 사용하여 해당 유형의 스키마 정의를 기반으로 적절한 SELECT, INSERT, UPDATE 또는 DELETE 문을 작성합니다. INSERT Apis가 이에 대한 몇 가지 예를 보여줍니다.

OrmLite는 POCO를 SQL 문으로 변환하는 것으로 생각하는 것이 가장 좋습니다. 따라서 ShipperTypeCount을 삽입하려고하면 ShipperTypeCount이라는 테이블에 레코드를 삽입하려고 시도합니다. [Alias("UseTableNameInstead")] 속성이 대신 사용됩니다.