2009-02-04 2 views
1

Castle Active Record를 사용하여 프로젝트 작업 중입니다. 오늘 AR 협회의 "Insert = true"속성 인수를 우연히 발견했으나 실제로 어떤 일을 할 수 없었습니다.Castle Active Record Association에서 'Insert = true'는 무엇을 의미합니까?

[BelongsTo("UserId",Insert = true)] 
public ARUser User { 
    get { return mUser; } 
    set { mUser = value; } 
} 

실마리를 줄 수 있습니까? 설명서에서 대답을 찾을 수 없습니다.

답변

4

네, 당신은

나는 확실히 내가 설명서를 이해하기 위해 약간의 테스트를했다 .. 삽입을 찾아 속성 몇 AR에 속성을 업데이트합니다.

모두 업데이트를 가졌 및 삽입 false로 설정하면 속성은 데이터베이스 액세스에 읽기 전용 될 것을 나타냅니다 (이 혼란 스러울 수있는 공공 세터로.)

[Property(Insert=false, Update=false)] 
public virtual string Name { get; set; } 

이 업데이트가 true로 설정 false로 삽입 데 이 속성을 설정하고 요소를 삽입해도 해당 값이 데이터베이스에 설정되지는 않습니다.

[Property(Insert=false)] 
public virtual DateTime Created { get; set; } 

사용 시나리오는 스스로 결정해야합니다.

+0

한 가지 사용 시나리오는 형식이 안전한 enum 패턴을 사용하는 경우입니다. 실제 개체의 인스턴스가 뒷받침하는 정적 속성으로 클래스를 만듭니다. 이렇게하면 열거 형인 것처럼 정적 클래스 속성에 액세스 할 수 있지만 비하인드 인스턴스는 값 대신 엔터티로 데이터베이스에 유지됩니다. 이것은 불변 열거 형의 외관을 잃지 않고 '정렬 순서'및 '표시 이름'과 같은 추가 필드를 추가 할 수 있다는 이점이 있습니다. –

0

documentation부터 -이 ActiveRecord 클래스의 엔터티를 삽입 할 때이 연결을 무시하려면 false로 설정합니다.

관련 문제