저는 지난 몇 일 동안 문제를 겪어 왔지만 해결책을 찾지 못했습니다.LINQ 클래스 라이브러리의 외부 매핑
2 개의 프로젝트가있는 Visual Studio 솔루션이 있는데 첫 번째 것은 비즈니스 개체 및 논리가있는 DLL이고 다른 프로젝트는 내 WinForm 응용 프로그램이고 첫 번째 프로젝트는 참조 종속성입니다.
처음에 특성 LINQ 매핑을 사용하여 비즈니스 개체를 작성했으며 모든 것이 잘 작동했습니다. 그런 다음 외부 매핑을 시도 할 것이라고 생각했습니다. 나는 그것이 어떻게 작동해야하는지에 대한 몇 가지 다른 지침을 따랐다. 그러나 내 솔루션에서 코드를 실행할 때마다 얻을 것이라고 InvalidOperationException : 매핑 문제 : WinForm이 DataContext 개체를 만들려고 할 때 매핑에서 'Org.Example.System.Material'형식을 찾을 수 없습니다.
XML 파일에서 다른 구성을 시도한 후에 클래스 복사본을 다른 네임 스페이스 아래의 내 GUI 솔루션에 넣었습니다. 내 질문은 클래스 라이브러리에서 객체를 매핑 할 수 없거나 그것이 성취되었는지 여부입니다.
샘플
dbmap.xml
<Database xmlns="http://schemas.microsoft.com/linqtosql/mapping/2007" Name="Gravel_Dev"><Table Name="dbo.Materials" Member="Material">
<Type Name="Org.Example.System.Material">
<Column Name="MaterialID" Member="MaterialID" Storage="mMaterialID" DbType="UniqueIdentifier NOT NULL" IsDbGenerated="true" IsPrimaryKey="true"/>
<Column Name="Code" Member="Code" Storage="mMaterialCode" DbType="Char(4)"/>
<Column Name="Description" Member="Description" Storage="mDescription" DbType="VarChar(50)"/>
<Column Name="UnitPrice" Member="UnitPrice" Storage="mUnitPrice" DbType="Decimal(5,2)"/>
</Type>
의 WinForm로드
XmlMappingSource mapping = XmlMappingSource.FromUrl("dbmap.xml");
mContext = new DataContext(Properties.Settings.Default.dbConn, mapping);
reloadTable();
감사합니다. 작동하는 유형의 객체를 선언하자마자 프로그램에서 내 표 위반에서 가져 오지 않는 것이 이상합니다. –
LizB
형식 이름을 발견 할 때 현재로드 된 어셈블리에서만 형식을 찾으려고 시도합니다. 이 방법은 내가 작업하고있는 몇 가지 버그의 일부로 다시 작성하도록 예정되어 있습니다 ;-) – DamienG