EF가 속성을 모니터링 할 수 있으려면 public (1) getter 및 setter가 있어야합니다.
당신이하고있는 것과 같은 것을 위해, 거기서 어떤 작업을 위해서 데이터베이스에 그것을 필요로하지 않는다면, Poco 클래스의 읽기 전용 속성으로 남겨 두는 것이 좋습니다. 두 개의 정수를 더하는 작업은 성능상의 문제가 아니며 데이터베이스에서 밀거나 당기는 속도가 더 느립니다.
(1) 데이터베이스를 제외하고는 "읽기 전용"으로 설정하려는 경우 설정자는 protected internal
일 수 있습니다. 새로운 private total
변수는 데이터베이스에 무엇을 저장합니다,이 예에서
private int? total;
public int Total
{
get
{
return total ?? sub_total_1 + sub_total_2;
}
protected internal set
{
total = value;
}
}
: 캐싱 목적을 위해 데이터베이스에 가치 저장 작업을 수행하는 방법의 예로서
, 당신은 이런 식으로 뭔가를 할 수 . 데이터베이스에서 검색되지 않으면 기본값은
sub_total_1
및
sub_total_2
의 합계가되도록 null 허용입니다. 하위 속성이 데이터베이스에서 검색된 후에 업데이트 된 경우이 체크를 둘러싼 또 다른 방법을 찾을 수 있습니다.하지만이 작업은 현재 수행중인 작업에 대한 좋은 시작입니다.
두 정수의 합은 간단한 예입니다. 이 경우 작업은 좀 더 복잡합니다. 그래서 캐시를하고 싶습니다. –
그러나 db 연산은 여기 계산 된 것보다 느립니다. –
직접적인 예제를 제공 할 수 있다면 도움이 될 것입니다. 그러나'public get','protected internal set'은 아마도 여러분이 찾고있는 것일 것입니다. – krillgar