2010-04-23 4 views
2

linq datacontext에 저장 프로 시저를 추가하면 기본적으로 Visual Studio가 저장 프로 시저에있는 SQL 스키마를 접두어로 붙입니다.이 작업을 중지 할 수있는 방법이 있습니까? 우리 환경에서는 저장 프로 시저를 다른 스키마로 옮길 수 있으며 연결에 사용 된 SQL 사용자를 기반으로 스키마를 기본값으로 설정합니다. 이 작업을 수동으로 수행해야합니까? 아니면 스키마 접두어를 어떻게 사용할 수 있습니까?linq datacontexts (dbml)에서 스키마 제거

답변

1

디자이너를 사용하여 LINQ에서 SQL로 매핑 된 저장 프로 시저에서 스키마를 제거 할 수있는 방법이없는 것으로 보입니다. 모든 procs는 스키마 이름을 포함하여 매핑됩니다. 이는 (공정하게) 대부분의 응용 프로그램에서 아마도 좋은 것입니다. LINQ-to-SQL과 마찬가지로 대부분의 경우 데이터베이스를 자신의 위험에 맞게 변경하십시오. 데이터베이스 변경이 너무 많아 LINQ-SQL-dbml 업데이트가 &으로 다시 작성됩니다.

더 깊게 파고 드는 스키마 이름은 뒤에있는 dbml XML 파일에 저장되며, 호출 된 함수/메소드가 포함 된 designer.cs 파일에 포함됩니다. 수동 비주얼 스튜디오 내에서 저장 스키마 &를 제거 dbml XML 파일을 편집하는 경우

// dbml 
<Function Name="dbo.MyProc" Method="MyProc"> 

// designer.cs 
[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.MyProc")] 
public int MyProc() 

이 코드는 다음과 같이 재생됩니다 DBO로 로그인 내 계정 일

// changed dbml - removed the dbo schema 
<Function Name="MyProc" Method="MyProc"> 

// the resultant generated code in designer.cs 
[global::System.Data.Linq.Mapping.FunctionAttribute()] 
public int MyProc() 

기본 스키마로. 테스트를 끝내도록하겠습니다.

이것은 비주얼 디자이너가 여전히 이와 같이 작동하고 스키마가없는 기능을 손상시키지 않고 다른 항목을 추가 할 수 있으며 기능 자체로 인해 디자이너가 불평하지 않게 할 수 있습니다. 행운을 빌어 요!