2016-10-21 2 views
0

시나리오 : 계산 된 속성을 RAW 메서드에 사용할 수 있어야합니다. 모델에 설정된 IsComputed 속성은 값을 RAW 메서드에서 사용할 수 없으므로 작동하지 않습니다.SQL Producer가 테이블 열 중 하나만 덮어 쓰지 않도록 할 수 있습니까?

시도한 솔루션 : 모델의 IsComputed 속성을 설정하는 대신 SQL 테이블에 직접 computed column을 만듭니다. CodefluentEntities가 계산 열을 덮어 쓰지 않도록 지정합니다. BOM이 계산 된 SQL 필드를 일반 데이터베이스 필드와 다를 바없이 읽을 것을 기대합니다.

문제점 : Codefluent Entities가 계산 된 열을 덮어 쓰지 못하게하는 방법을 알 수 없습니다. production flags을 사용하고 .cfp의 속성에 대해 produce = "false"로 설정하려고했습니다. 어느 쪽도 효과가 없었다.

질문 : Codefluent 엔티티가 계산 열을 덮어 쓰지 못하게 할 수 있습니까? 그렇다면 어떻게해야합니까?

답변

0

대체 솔루션 : 대체 솔루션은 SQL Producer 생성이 완료된 후 다음 TSQL 스크립트를 실행하는 것입니다.

ALTER TABLE PunchCard DROP COLUMN PunchCard_CompanyCodeCalculated 
GO 

ALTER TABLE PunchCard 
ADD PunchCard_CompanyCodeCalculated AS CASE 
     WHEN PunchCard_CompanyCodeAdjusted IS NOT NULL THEN PunchCard_CompanyCodeAdjusted 
     ELSE PunchCard_CompanyCode 
END 

GO 

솔루션 작동하도록하는 데 필요한 추가 구성 : 그것은 계산 열과 관련된 데이터를 저장하지 않도록 하나는 또한 BOM을 구성해야 작동이 솔루션을 위해합니다. 이것은 고급 속성을 사용하여 모델을 통해 수행 할 수 있습니다. 필자의 경우 CompanyCodeCalculated 속성을 선택했습니다. 고급 설정으로 이동했습니다. 저장 설정을 False로 설정하십시오.

질문 : 지식 센터의 어느 곳에서 SQL Producer가 끝난 후 실행 SQL 스크립트를 자동화하는 방법에 대한 참조가 있지만 찾을 수 없습니다. 이제 어떻게 된거야?

게시물 사용 의견 : 사람들에게 내가이 접근 방식을 구현했으며 지금까지 결과에 만족한다는 것을 알리고 싶었습니다.

1

개봉을 찾고 해결책은 당신이 유일한 전제가 프로듀서를 실행하면 알 수 있도록 스크립트를 특정 이름을 제공하는 것입니다 어떤 사용자 정의 당신이 좋아하는 T-SQL 스크립트를 실행할 수 있습니다 here

입니다. 당신은 테이블을 생성 한 후 사용자 정의 스크립트를 실행하려면

즉, 스크립트

after_[ProjectName]_tables 이름을 지정합니다.

코드 플로우 생성 파일과 함께 사용자 정의 t-sql 파일을 저장하고 프로젝트를 빌드하십시오.

내 특정 경우

, 난 내 테이블 열 중 하나에 전체 텍스트 인덱스를 사용했다, 나는 그들이 내 파일에 어떻게 보이는지 Heres는

`after_[ProjectName]_relations_add` 

로 저장 기능을위한 SQL 스크립트를 작성 디렉토리

file directory