2012-11-08 4 views
0

다른 프로젝트에서 참조로 설정 한 LINQ DMBL 파일이 포함 된 DLL을 만들었으며 문제없이 데이터베이스와 상호 작용할 수있게되었습니다.DLL의 DataContext에 Dispose() 메서드가 없습니다.

그러나 DataContext에는 Dispose() 메서드가 없습니다. 주위를 사용하여 랩핑하려고하면 암시 적으로 System.IDisposable로 변환되지 않는다고 알려줍니다.

Dispose() 메서드를 DLL 프로젝트에서 사용할 수 있으므로 여기에 누락 된 것이 있습니까? DataContext가 DLL을 통해 액세스 될 때 어떻게 든 다르게 처리됩니까?

많은 감사합니다.

+0

Dispose 메서드의 액세스 한정자가 올바르지 않을 수 있습니다. 공개로 설정되어 있고 개인, 내부 또는 보호되지 않았는지 확인하십시오. 'protected override Dispose()'와 같이 Dispose를위한 재정의 (override)가 오직있는 경우에는 ((IDisposable) myDataContext를 통해) Dispose를 명시 적으로 호출해야 할 수도 있습니다 .Dispose() – Davio

답변

1

매우 이상합니다. 참조 속성에서 볼 수 있듯이 VS에서 dll과 프로젝트를 참조하는 데 큰 차이가 없어야합니다. bin/debug (또는 bin/release - 빌드 구성에 따라 다름)에있는 dll에 대한 경로가 프로젝트로 참조되는 경우 해당 경로가 가리 킵니다.

System.Data.Linq 어셈블리를 참조했는지 확인하십시오.

내 VS 2008 - .NET 3.5에서 DBML을 만들려고하면 dbml 생성기에서 생성 한 datacontext 클래스가 IDisposable을 구현하는 System.Data.Linq.DataContext에서 상속받습니다.

+0

그게 그것입니다. System.Data.Linq를 참조하지 않았습니다. 그것은 자동으로 Xml.Linq를 주었지만 나는 Data.Linq을 가지고 있지 않았다. 많은 감사합니다! – CrazyHorse

+1

ReSharper IMHO에 돈을 쓸 가치가 있습니다. 그것은 그러한 상황에서 (뿐만 아니라) 당신을 도울 것입니다. – mipe34

+0

제안에 찬사를 보내면 30 일 무료 평가판이 제공되므로 사용하겠습니다. – CrazyHorse

관련 문제