원 <some column=""> 이에서 지원되지 않는 음속 이하
문제
내가 사용하 T4 템플릿의 아음속 3.0 를 생성하는 클래스와 같습니다.에서 잘 나의 데이터베이스가 우편 번호 테이블과 이러한 열
- ZipCode_rid
- 우편 번호(실제 우편 번호에서 숫자 형식)
- 국가
- etc.
잘 때,T4 템플릿을 실행하지 않고,열처 Zipcode.Zipcode
나 Zipcode.ZipcodeX
.그 때 실행하려고 간단한 쿼리를 통해 이 표에 내가 애매한 오류
회원'ZipcodeX'은 지원하지 않는
쿼리가 무언가가 간단한 다음과 같이
var z= from z in Zipcode.All()
where (z.ZipcodeX == "12345")
select z;
이것이 버그가 아음속 또는 나는 장난 뭔가요?무슨 방법이 있습니까?
나는 일시적으로 일을 이 문제를 해결에 의해의 이름 바꾸기 Zipcode
열 ZipCode
..그러나 이것은 매우 좋은 장기 솔루션
해결책
이것은 모두에서 버그가 아음속 및을하고 뭔가 잘못입니다.현재 음속을 지원하지 않는 열과 같은 이름의 테이블이 포함됩니다.템플릿 작업을 하려고의 주위에 추가하여 이 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 파일 후에 이것을 하고 있다.