문제

내가 사용하 T4 템플릿의 아음속 3.0 를 생성하는 클래스와 같습니다.에서 잘 나의 데이터베이스가 우편 번호 테이블과 이러한 열

  • ZipCode_rid
  • 우편 번호(실제 우편 번호에서 숫자 형식)
  • 국가
  • etc.

잘 때,T4 템플릿을 실행하지 않고,열처 Zipcode.ZipcodeZipcode.ZipcodeX.그 때 실행하려고 간단한 쿼리를 통해 이 표에 내가 애매한 오류

회원'ZipcodeX'은 지원하지 않는

쿼리가 무언가가 간단한 다음과 같이

var z= from z in Zipcode.All()
       where (z.ZipcodeX == "12345")
       select z;

이것이 버그가 아음속 또는 나는 장난 뭔가요?무슨 방법이 있습니까?

나는 일시적으로 일을 이 문제를 해결에 의해의 이름 바꾸기 ZipcodeZipCode..그러나 이것은 매우 좋은 장기 솔루션

도움이 되었습니까?

해결책

이것은 모두에서 버그가 아음속 및을하고 뭔가 잘못입니다.현재 음속을 지원하지 않는 열과 같은 이름의 테이블이 포함됩니다.템플릿 작업을 하려고의 주위에 추가하여 이 X 열 이름을 하지만 아음속 핵심은 다음을 불면.

구의 이름을 변경하는 열이나 테이블,Zipcode.우편 번호하지 않는 정말로 나에게 어쩌면 우편 번호.코드는 것이 더 적절합니다.

다른 팁

나는 확실하지 않으면 이동할 수 있지만 그것을 시도를 제공합니다.그것은 약간의 고통이 그러나 나는 그것을 얻을 갈 수 있습니다.

1 단계 에서 설정합니다.ttinclude 수있는 기능

문자열 정리(문자열 테이블)

새로 만들고 하나는 그냥 그 아래에 다음과 같이(추가 어떤 확장자/이름 바꾸기 알고리즘처럼 당신

문자열 정리(string colName,문자열 테이블){

  string result=colName;

  //strip blanks
  result=result.Replace(" ","");

  //put your logic here...
  if (result.ToLower() == tableName.ToLower())
  {
      result = colName + "X";
  }

  return result;

}

2 단계 에 SQLServer.ttinclude(또는 해당 파일에 대한 데이터 원본)가에 대해 선 167 다음과 같은 줄:

col.CleanName=정리(col.Name);

이를 변경하기:

col.CleanName=정리(col.이름,tbl.Name);

3 단계 이것은 고통은 정말로 시작합니다.을 잡아의 소스 코드에 대한 Sql.Core(예:()및 DatabaseTable.cs 변경

    public IColumn GetColumnByPropertyName(string PropertyName)

하기

    public virtual IColumn GetColumnByPropertyName(string PropertyName)

4 단계 에서 구조체.후 tt

public static string <#=col.CleanName#>열{ 을 얻을{ return"<#=col.이름#>";} }

다음

<#if(col.CleanName!= col.Name){#>

       public override IColumn GetColumnByPropertyName(string columName){
           if (columName == "<#= col.CleanName #>")
               return <#=col.CleanName#>;
            else
               return base.GetColumnByPropertyName(columName);
        }

<# } #>

당신은 아마이 필요합니다 다시 생성합니다.cs 파일 후에 이것을 하고 있다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top