2017-04-08 11 views
0

내 Umbraco 구동 웹 사이트에서 Petapoco를 사용하려고합니다. 내 poco에서 나는 기본 SQL 값 (getDate())을 가진 Created라는 컬럼을 가지고있다. 필자는 Petapoco에 의해 삽입되고 업데이트 될 때 그 칼럼을 무시하고 싶지만, 읽지는 않는다.Petapoco 속성이 누락되었습니다. IgnoreOnInsert, IgnoreOnUpdate

나는 어떻게 우아하게 그것을 할 수 있습니까? 아마도 사용자 지정 매퍼를 사용하거나 Petapoco 엔진에 새로운 특성 (예 : IgnoreOnInsert, IgnoreOnUpdate)을 포함시킬 수 있습니다.

나는 해킹을 해왔다. 그 중 하나는 각 테이블에 대해 두 개의 poco를 가지고 있었다. 하나는 삽입 업데이트 용이고 하나는 읽기 용이다. 그러나 만족스러운 것으로 받아들이 기가 어렵습니다.

답변

0

저는 대개 클래스 생성자를 만들고 거기에 날짜 속성을 설정합니다. 뭔가 같은

public class WhatEvs 
{ 
    ... 
    public WhatEvs() 
    { 
     DateCreated = DateTime.Now; 
    } 
} 
+0

예,이 또한 해킹 중 하나였다,하지만 당신은 항상 그들을 업데이트하기 전에 POCO의 수분을주의 할 필요가 있기 때문에 나는 그것을 100 %를 좋아하지 않았다, 원래 값을 재정의하지 마십시오. 또한 sql에서 읽기를 수행하는 데 필요한 모든 저장 전에 SQL과 웹 서버에 대한로드를 늘리는 것입니다. 그리고 팀의 새로운 개발자 외에,이 대회에서 지시하지 않으면 일부 코드를 수행하고 poco의 모든 초기 값을 무시할 수 있습니다. 나는 IgnoreOnInsert, IgnoreOnUpdate 같은 속성과 비슷한 것을하는 솔루션을 원합니다. – Andrei

0

누군가가 여전히 이것에 흥미가있는 경우에, 나는 결국 좋은 해결책을 발견했다. 그리고 Petapoco 사용을 중단하고 'ComputedColumn'이라는 멋진 특성을 가진 NPoco로 전환하는 것입니다. [ComputedColumn] 특성을 사용하여 속성을 꾸밀면 NPoco가 삽입 및 업데이트 쿼리를 생성 할 때 해당 속성이 사용되지 않지만 선택 쿼리에서는 사용됩니다. 그렇기 때문에 CreatedDate 나 UniqueGuid 같은 데이터베이스 처리 값을 처리 할 수는 있지만 쿼리 할 때 얻을 수 있습니다. 친절 여기에이 문제를 대답 아론 감사 : https://github.com/CollaboratingPlatypus/PetaPoco/issues/421#issuecomment-348390149