Flush. (Updates to sync with DbLinq r1009, fixes IVendor lookup within
authorJonathan Pryor <jpryor@novell.com>
Wed, 11 Mar 2009 20:06:10 +0000 (20:06 -0000)
committerJonathan Pryor <jpryor@novell.com>
Wed, 11 Mar 2009 20:06:10 +0000 (20:06 -0000)
System.Data.Linq.dll, add unit tests -- which aren't hooked up to Mono's build
system -- various bug fixes, etc.)

svn path=/trunk/mcs/; revision=129090

93 files changed:
mcs/class/System.Data.Linq/src/ConnectionStrings.xml [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.Firebird/DbLinq.Firebird.csproj
mcs/class/System.Data.Linq/src/DbLinq.Firebird/FirebirdVendor.cs
mcs/class/System.Data.Linq/src/DbLinq.Firebird/Test/DbLinq.Firebird_test.csproj [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.Firebird/Test/TestBase.cs [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq.Ingres/DbLinq.Ingres.csproj
mcs/class/System.Data.Linq/src/DbLinq.Ingres/IngresSqlProvider.cs
mcs/class/System.Data.Linq/src/DbLinq.Ingres/IngresVendor.cs
mcs/class/System.Data.Linq/src/DbLinq.Ingres/Test/DbLinq.Ingres_test.csproj [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.Ingres/Test/NorthwindIngres.dbml [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.Ingres/Test/TestBase.cs [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq.MySql/DbLinq.MySql.csproj
mcs/class/System.Data.Linq/src/DbLinq.MySql/MySqlVendor.cs
mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/DbLinq.MySql_test.csproj [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/DbLinq.MySql_test_vb.vbproj [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Application.Designer.vb [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Application.myapp [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/AssemblyInfo.vb [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Resources.Designer.vb [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Resources.resx [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Settings.Designer.vb [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Settings.settings [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/NorthwindMySql.dbml [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/TestBase.cs [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq.Oracle/DbLinq.Oracle.csproj
mcs/class/System.Data.Linq/src/DbLinq.Oracle/OracleSchemaLoader.Columns.cs
mcs/class/System.Data.Linq/src/DbLinq.Oracle/OracleSchemaLoader.Constraints.cs
mcs/class/System.Data.Linq/src/DbLinq.Oracle/OracleSchemaLoader.Tables.cs
mcs/class/System.Data.Linq/src/DbLinq.Oracle/OracleSchemaLoader.cs
mcs/class/System.Data.Linq/src/DbLinq.Oracle/OracleVendor.cs
mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/DbLinq.Oracle_test.csproj [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/DbLinq.Oracle_test_odp.csproj [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/NorthwindOraODP.dbml [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/NorthwindOracle.dbml [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/TestBase.cs [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/TestBase_odp.cs [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq.PostgreSql/DbLinq.PostgreSql.csproj
mcs/class/System.Data.Linq/src/DbLinq.PostgreSql/PgsqlVendor.cs
mcs/class/System.Data.Linq/src/DbLinq.PostgreSql/Test/DbLinq.PostgreSql_test.csproj [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.PostgreSql/Test/NorthwindPgsql.dbml [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.PostgreSql/Test/TestBase.cs [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq.SqlServer/DbLinq.SqlServer.csproj
mcs/class/System.Data.Linq/src/DbLinq.SqlServer/SqlServerSqlProvider.cs
mcs/class/System.Data.Linq/src/DbLinq.SqlServer/SqlServerVendor.cs
mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/DbLinq.SqlServer_test.csproj [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/DbLinq.SqlServer_test_ndb.csproj [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/DbLinq.SqlServer_test_strict.csproj [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/MsSqlDataContextTest.cs [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/TestBase.cs [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq.Sqlite/DbLinq.Sqlite.csproj
mcs/class/System.Data.Linq/src/DbLinq.Sqlite/SqliteVendor.cs
mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/DbLinq.Sqlite_test.csproj [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/DbLinq.Sqlite_test_mono.csproj [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/DbLinq.Sqlite_test_mono_strict.csproj [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/DirectDataContext.cs [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/NorthwindSqlite.dbml [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/TestBase.cs [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/TestBase_mono.cs [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq.sln
mcs/class/System.Data.Linq/src/DbLinq/Data/Linq/DataContext.cs
mcs/class/System.Data.Linq/src/DbLinq/Data/Linq/Mapping/AttributedMetaAssociation.cs
mcs/class/System.Data.Linq/src/DbLinq/Data/Linq/Sugar/ExpressionChain.cs
mcs/class/System.Data.Linq/src/DbLinq/Data/Linq/Sugar/Implementation/DataRecordReader.cs
mcs/class/System.Data.Linq/src/DbLinq/Data/Linq/Sugar/Implementation/ExpressionDispatcher.Analyzer.cs
mcs/class/System.Data.Linq/src/DbLinq/Data/Linq/Sugar/Implementation/ExpressionOptimizer.cs
mcs/class/System.Data.Linq/src/DbLinq/Data/Linq/Sugar/Implementation/QueryCache.cs
mcs/class/System.Data.Linq/src/DbLinq/DbLinq.csproj
mcs/class/System.Data.Linq/src/DbLinq/Properties/AssemblyInfo.cs
mcs/class/System.Data.Linq/src/DbLinq/System.Data.Linq.csproj
mcs/class/System.Data.Linq/src/DbLinq/System.Data.Linq/System.Data.Linq.SqlClient/SqlMethods.cs
mcs/class/System.Data.Linq/src/DbLinq/Test/CsvArrayAdapterTest.cs [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq/Test/DataContextTest.cs [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq/Test/DbLinqTest.csproj [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq/Test/DbLinq_test.csproj [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq/Test/DbLinq_test_ndb_strict.csproj [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq/Test/ExpressionEqualityComparerTest.cs [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq/Test/IDataTypeExtensionsTest.cs [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq/Test/NameFormatterTest.cs [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq/Test/NullProvider.cs [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq/Test/PeopleTable.cs [new file with mode: 0755]
mcs/class/System.Data.Linq/src/DbLinq/Test/Properties/AssemblyInfo.cs [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq/Test/Test References/DbLinq.accessor [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq/Test/TypeContextTest.cs [new file with mode: 0644]
mcs/class/System.Data.Linq/src/DbLinq/Util/ExpressionChainEqualityComparer.cs
mcs/class/System.Data.Linq/src/DbLinq/Util/ExpressionEqualityComparer.cs
mcs/class/System.Data.Linq/src/DbLinq/Util/ReflectionUtility.cs
mcs/class/System.Data.Linq/src/DbLinq/Util/StringExtensions.cs
mcs/class/System.Data.Linq/src/DbLinq/Vendor/Implementation/SchemaLoader.TypeMapping.cs
mcs/class/System.Data.Linq/src/DbLinq/Vendor/Implementation/SqlProvider.cs
mcs/class/System.Data.Linq/src/DbLinq/Vendor/Implementation/Vendor.cs
mcs/class/System.Data.Linq/src/DbLinq3.vsmdi
mcs/class/System.Data.Linq/src/DbLinq_StudioExpress.sln
mcs/class/System.Data.Linq/src/LocalTestRun.testrunconfig

diff --git a/mcs/class/System.Data.Linq/src/ConnectionStrings.xml b/mcs/class/System.Data.Linq/src/ConnectionStrings.xml
new file mode 100644 (file)
index 0000000..aaa6252
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8" ?>\r
+<Connections>\r
+  <Connection assembly="DbLinq.SqlServer_test">Data Source=.\SQLExpress;Integrated Security=True;Initial Catalog=Northwind</Connection>\r
+  <Connection assembly="DbLinq.SqlServer_test_strict">Data Source=.\SQLExpress;Integrated Security=True;Initial Catalog=Northwind</Connection>\r
+\r
+  <Connection assembly="DbLinq.Oracle_test_odp">Data Source = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = {0})(PORT = 1521)))(CONNECT_DATA = (SERVER = DEDICATED))); User Id = Northwind; Password = linq2</Connection>\r
+  <Connection assembly="DbLinq.Oracle_test">Data Source = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = {0})(PORT = 1521)))(CONNECT_DATA = (SERVER = DEDICATED))); User Id = Northwind; Password = linq2</Connection>\r
+\r
+  <Connection assembly="DbLinq.Sqlite_test">Data Source=Northwind.db3</Connection>\r
+  <Connection assembly="DbLinq.Sqlite_test_mono">Data Source=Northwind.db3</Connection>\r
+  <Connection assembly="DbLinq.Sqlite_test_mono_strict">DbLinqProvider=Sqlite;Data Source=Northwind.db3</Connection>\r
+  <Connection assembly="DbLinq.MySql_test">server={0};user id=LinqUser; password=linq2; database=Northwind</Connection>\r
+  <Connection assembly="DbLinq.PostgreSql_test">server={0};user id=LinqUser; password=linq2; database=Northwind</Connection>\r
+  <Connection assembly="DbLinq.Ingres_test">server={0};user id=LinqUser; password=linq2; database=Northwind</Connection>\r
+  <Connection assembly="DbLinq.Firebird_test">server={0};user id=LinqUser; password=linq2; database=c:\Program Files\Firebird\Firebird_2_1\examples\nwind\NORTHWIND.FDB</Connection>\r
+</Connections>\r
+\r
+<!--\r
+<Connection assembly="DbLinq.MySql_test">server=hasselhoff.eii.us.es;user id=LinqUser; password=linq2; database=Northwind</Connection>\r
+<Connection assembly="DbLinq.PostgreSql_test">server=hasselhoff.eii.us.es;user id=LinqUser; password=linq2; database=postgreNorthwind</Connection>\r
+\r
+  <Connection assembly="DbLinq.MySql_test">server={0};user id=LinqUser; password=linq2; database=Northwind</Connection>\r
+  <Connection assembly="DbLinq.PostgreSql_test">server={0};user id=LinqUser; password=linq2; database=Northwind</Connection>\r
+-->\r
index 211a1c8c3d48f1b0b8ab611a8eecf0754ca71a4a..0f0740130a6ed14ba92cb9fbdf9ecac376a0732d 100644 (file)
@@ -19,7 +19,7 @@
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
     <Optimize>false</Optimize>\r
-    <OutputPath>bin\Debug\</OutputPath>\r
+    <OutputPath>..\..\build.dbg\</OutputPath>\r
     <DefineConstants>DEBUG;TRACE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
@@ -27,7 +27,7 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
     <DebugType>pdbonly</DebugType>\r
     <Optimize>true</Optimize>\r
-    <OutputPath>bin\Release\</OutputPath>\r
+    <OutputPath>..\..\build\</OutputPath>\r
     <DefineConstants>TRACE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
@@ -76,4 +76,4 @@
   <Target Name="AfterBuild">\r
   </Target>\r
   -->\r
-</Project>
\ No newline at end of file
+</Project>\r
index 063f16bf2f5221313c2fac036350eb2e64158df3..2c075872620382a4f74207138fa7eb43cee8cb58 100644 (file)
@@ -201,14 +201,5 @@ namespace DbLinq.Firebird
             }\r
             return outParamValues;\r
         }\r
-\r
-        override protected TypeToLoadData GetProviderTypeName()\r
-        {\r
-            return new TypeToLoadData\r
-            {\r
-                assemblyName = "FirebirdSql.Data.FirebirdClient.DLL",\r
-                className = "FbConnection",\r
-            };\r
-        }\r
     }\r
 }\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Firebird/Test/DbLinq.Firebird_test.csproj b/mcs/class/System.Data.Linq/src/DbLinq.Firebird/Test/DbLinq.Firebird_test.csproj
new file mode 100644 (file)
index 0000000..f2b0790
--- /dev/null
@@ -0,0 +1,224 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{6BC45425-283A-4D51-881A-D1E14A699D57}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>Test_NUnit</RootNamespace>\r
+    <AssemblyName>DbLinq.Firebird_test</AssemblyName>\r
+    <StartupObject>\r
+    </StartupObject>\r
+    <FileUpgradeFlags>\r
+    </FileUpgradeFlags>\r
+    <OldToolsVersion>2.0</OldToolsVersion>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <UpgradeBackupLocation>\r
+    </UpgradeBackupLocation>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;FIREBIRD</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>1</WarningLevel>\r
+    <NoWarn>\r
+    </NoWarn>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;FIREBIRD</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="FirebirdSql.Data.FirebirdClient, Version=2.1.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\FirebirdSql.Data.FirebirdClient.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Security" />\r
+    <Reference Include="System.Windows.Forms" />\r
+    <Reference Include="System.Xml" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\..\..\examples\DbLinq.FbSql.Example\nwind\Northwind.cs">\r
+      <Link>nwind\Northwind.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\lib\DynamicLinq.cs">\r
+      <Link>lib\DynamicLinq.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Attach.cs">\r
+      <Link>Providers\Attach.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\CompositePK_Test.cs">\r
+      <Link>Providers\CompositePK_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DynamicLinqTest.cs">\r
+      <Link>Providers\DynamicLinqTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteCommand_Test.cs">\r
+      <Link>Providers\ExecuteCommand_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteQuery_Test.cs">\r
+      <Link>Providers\ExecuteQuery_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Advanced.cs">\r
+      <Link>Providers\Linq_101_Samples\Advanced.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Conversion_Operators.cs">\r
+      <Link>Providers\Linq_101_Samples\Conversion_Operators.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs">\r
+      <Link>Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\ExsistIn_Any_All.cs">\r
+      <Link>Providers\Linq_101_Samples\ExsistIn_Any_All.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\GroupBy_Having.cs">\r
+      <Link>Providers\Linq_101_Samples\GroupBy_Having.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Inheritance.cs">\r
+      <Link>Providers\Linq_101_Samples\Inheritance.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Insert_Update_Delete.cs">\r
+      <Link>Providers\Linq_101_Samples\Insert_Update_Delete.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Join.cs">\r
+      <Link>Providers\Linq_101_Samples\Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs">\r
+      <Link>Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Null.cs">\r
+      <Link>Providers\Linq_101_Samples\Null.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object Loading.cs">\r
+      <Link>Providers\Linq_101_Samples\Object Loading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object_Identity.cs">\r
+      <Link>Providers\Linq_101_Samples\Object_Identity.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\OrderBy.cs">\r
+      <Link>Providers\Linq_101_Samples\OrderBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Paging.cs">\r
+      <Link>Providers\Linq_101_Samples\Paging.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Select_Distinct.cs">\r
+      <Link>Providers\Linq_101_Samples\Select_Distinct.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\String_Date_functions.cs">\r
+      <Link>Providers\Linq_101_Samples\String_Date_functions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Top_Bottom.cs">\r
+      <Link>Providers\Linq_101_Samples\Top_Bottom.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs">\r
+      <Link>Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Views.cs">\r
+      <Link>Providers\Linq_101_Samples\Views.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Where.cs">\r
+      <Link>Providers\Linq_101_Samples\Where.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Properties\AssemblyInfo.cs">\r
+      <Link>Providers\Properties\AssemblyInfo.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest.cs">\r
+      <Link>Providers\ReadTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_AnyCountFirst.cs">\r
+      <Link>Providers\ReadTests_AnyCountFirst.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Conversions.cs">\r
+      <Link>Providers\ReadTests_Conversions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_DateTimeFunctions.cs">\r
+      <Link>Providers\ReadTests_DateTimeFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_EntitySet.cs">\r
+      <Link>Providers\ReadTests_EntitySet.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Join.cs">\r
+      <Link>Providers\ReadTests_Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Maths.cs">\r
+      <Link>Providers\ReadTests_Maths.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_ReferenceLoading.cs">\r
+      <Link>Providers\ReadTests_ReferenceLoading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_StringFunctions.cs">\r
+      <Link>Providers\ReadTests_StringFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Complex.cs">\r
+      <Link>Providers\ReadTest_Complex.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_GroupBy.cs">\r
+      <Link>Providers\ReadTest_GroupBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Operands.cs">\r
+      <Link>Providers\ReadTest_Operands.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Subquery.cs">\r
+      <Link>Providers\ReadTest_Subquery.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\StoredProcTest.cs">\r
+      <Link>Providers\StoredProcTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Table.cs">\r
+      <Link>Providers\Table.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\TestBase.cs">\r
+      <Link>Providers\TestBase.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Transactions.cs">\r
+      <Link>Providers\Transactions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\VerticalPartitioningTest.cs">\r
+      <Link>Providers\VerticalPartitioningTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest.cs">\r
+      <Link>Providers\WriteTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest_BulkInsert.cs">\r
+      <Link>Providers\WriteTest_BulkInsert.cs</Link>\r
+    </Compile>\r
+    <Compile Include="TestBase.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\101_readme.htm">\r
+      <Link>Providers\Linq_101_Samples\101_readme.htm</Link>\r
+    </None>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\DbLinq.Firebird.csproj">\r
+      <Project>{E1AB58E4-357E-4031-90F3-6AABA9623047}</Project>\r
+      <Name>DbLinq.Firebird</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\..\DbLinq\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Firebird/Test/TestBase.cs b/mcs/class/System.Data.Linq/src/DbLinq.Firebird/Test/TestBase.cs
new file mode 100755 (executable)
index 0000000..652cf65
--- /dev/null
@@ -0,0 +1,52 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Data;\r
+\r
+namespace Test_NUnit\r
+{\r
+    public abstract partial class TestBase\r
+    {\r
+        public const StringComparison stringComparisonType = StringComparison.InvariantCulture;\r
+\r
+        public static IDbCommand CreateCommand (string sql, IDbConnection conn)\r
+        {\r
+            return new FirebirdSql.Data.FirebirdClient.FbCommand(sql, (FirebirdSql.Data.FirebirdClient.FbConnection) conn);\r
+        }\r
+\r
+        public static IDbConnection CreateConnection (string connectionString)\r
+        {\r
+            return new FirebirdSql.Data.FirebirdClient.FbConnection(connectionString);\r
+        }\r
+\r
+        public DbLinq.Vendor.IVendor CreateVendor()\r
+        {\r
+            return new DbLinq.Firebird.FirebirdVendor();\r
+        }\r
+    }\r
+}\r
index 95ed216347a3c97077201e4e73e5eaee8739e541..41f41126f5e7a0f03355c4df0f86a3d41cd537fb 100755 (executable)
@@ -19,7 +19,7 @@
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
     <Optimize>false</Optimize>\r
-    <OutputPath>bin\Debug\</OutputPath>\r
+    <OutputPath>..\..\build.dbg\</OutputPath>\r
     <DefineConstants>DEBUG;TRACE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
@@ -76,4 +76,4 @@
   <Target Name="AfterBuild">\r
   </Target>\r
   -->\r
-</Project>
\ No newline at end of file
+</Project>\r
index dce67e7396bf3c64120fbacd5d09c2d3d1642fc2..e863dc3677d8af6af3fe30efb18d338f03067df3 100644 (file)
-#region MIT license
-// 
-// MIT license
-//
-// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-// 
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-#if MONO_STRICT
-using System.Data.Linq.Sql;
-#else
-using DbLinq.Data.Linq.Sql;
-#endif
-using DbLinq.Vendor.Implementation;
-
-namespace DbLinq.Ingres
-{
-#if MONO_STRICT
-    internal
-#else
-    public
-#endif
-    class IngresSqlProvider : SqlProvider
-    {
-        public override SqlStatement GetInsertIds(IList<SqlStatement> outputParameters, IList<SqlStatement> outputExpressions)
-        {
-            // no parameters? no need to get them back
-            if (outputParameters.Count == 0)
-                return "";
-            // otherwise we keep track of the new values
-            return SqlStatement.Format("SELECT {0}",
-                SqlStatement.Join(", ", (from outputExpression in outputExpressions
-                                         select outputExpression.Replace("next value", "current value", true)).ToArray())
-                );
-        }
-
-        protected override SqlStatement GetLiteralCount(SqlStatement a)
-        {
-            return "COUNT(*)";
-        }
-
-        protected override SqlStatement GetLiteralStringToLower(SqlStatement a)
-        {
-            return string.Format("LOWER({0})", a);
-        }
-
-        protected override SqlStatement GetLiteralStringToUpper(SqlStatement a)
-        {
-            return string.Format("UPPER({0})", a);
-        }
-
-        public override SqlStatement GetLiteralLimit(SqlStatement select, SqlStatement limit)
-        {
-            // return string.Format("SELECT FIRST {0} FROM ({1})", limit, select);
-            var trimSelect = "SELECT ";
-            if (select.Count > 0 && select[0].Sql.StartsWith(trimSelect))
-            {
-                var selectBuilder = new SqlStatementBuilder(select);
-                var remaining = select[0].Sql.Substring(trimSelect.Length);
-                selectBuilder.Parts[0] = new SqlLiteralPart(remaining);
-                return SqlStatement.Format("SELECT FIRST {0} {1}", limit, selectBuilder.ToSqlStatement());
-            }
-            throw new ArgumentException("Invalid SELECT format");
-        }
-
-        public override SqlStatement GetLiteralLimit(SqlStatement select, SqlStatement limit, SqlStatement offset, SqlStatement offsetAndLimit)
-        {
-            // Ingres 9.2 and above support offset clauses now
-            return SqlStatement.Format("{0} OFFSET {1}", GetLiteralLimit(select, limit), offset);
-        }
-
-        public override string GetParameterName(string nameBase)
-        {
-            return "?";
-        }
-
-        protected override bool IsNameCaseSafe(string dbName)
-        {
-            return dbName == dbName.ToLower();
-        }
-
-        protected override SqlStatement GetLiteralStringConcat(SqlStatement a, SqlStatement b)
-        {
-            // This needs to be bracketed in case subsequent functions are called upon it
-            return SqlStatement.Format("({0} || {1})", a, b);
-        }
-    }
-}
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+#if MONO_STRICT\r
+using System.Data.Linq.Sql;\r
+#else\r
+using DbLinq.Data.Linq.Sql;\r
+#endif\r
+using DbLinq.Vendor.Implementation;\r
+\r
+namespace DbLinq.Ingres\r
+{\r
+#if MONO_STRICT\r
+    internal\r
+#else\r
+    public\r
+#endif\r
+    class IngresSqlProvider : SqlProvider\r
+    {\r
+        public override SqlStatement GetInsertIds(IList<SqlStatement> outputParameters, IList<SqlStatement> outputExpressions)\r
+        {\r
+            // no parameters? no need to get them back\r
+            if (outputParameters.Count == 0)\r
+                return "";\r
+            // otherwise we keep track of the new values\r
+            return SqlStatement.Format("SELECT {0}",\r
+                SqlStatement.Join(", ", (from outputExpression in outputExpressions\r
+                                         select outputExpression.Replace("next value", "current value", true)).ToArray())\r
+                );\r
+        }\r
+\r
+        protected override SqlStatement GetLiteralCount(SqlStatement a)\r
+        {\r
+            return "COUNT(*)";\r
+        }\r
+\r
+        protected override SqlStatement GetLiteralStringToLower(SqlStatement a)\r
+        {\r
+            return string.Format("LOWER({0})", a);\r
+        }\r
+\r
+        protected override SqlStatement GetLiteralStringToUpper(SqlStatement a)\r
+        {\r
+            return string.Format("UPPER({0})", a);\r
+        }\r
+\r
+        public override SqlStatement GetLiteralLimit(SqlStatement select, SqlStatement limit)\r
+        {\r
+            // return string.Format("SELECT FIRST {0} FROM ({1})", limit, select);\r
+            var trimSelect = "SELECT ";\r
+            if (select.Count > 0 && select[0].Sql.StartsWith(trimSelect))\r
+            {\r
+                var selectBuilder = new SqlStatementBuilder(select);\r
+                var remaining = select[0].Sql.Substring(trimSelect.Length);\r
+                selectBuilder.Parts[0] = new SqlLiteralPart(remaining);\r
+                return SqlStatement.Format("SELECT FIRST {0} {1}", limit, selectBuilder.ToSqlStatement());\r
+            }\r
+            throw new ArgumentException("Invalid SELECT format");\r
+        }\r
+\r
+        public override SqlStatement GetLiteralLimit(SqlStatement select, SqlStatement limit, SqlStatement offset, SqlStatement offsetAndLimit)\r
+        {\r
+            // Ingres 9.2 and above support offset clauses now\r
+            return SqlStatement.Format("{0} OFFSET {1}", GetLiteralLimit(select, limit), offset);\r
+        }\r
+\r
+        public override string GetParameterName(string nameBase)\r
+        {\r
+            return "?";\r
+        }\r
+\r
+        protected override bool IsNameCaseSafe(string dbName)\r
+        {\r
+            return dbName == dbName.ToLower();\r
+        }\r
+\r
+        protected override SqlStatement GetLiteralStringConcat(SqlStatement a, SqlStatement b)\r
+        {\r
+            // This needs to be bracketed in case subsequent functions are called upon it\r
+            return SqlStatement.Format("({0} || {1})", a, b);\r
+        }\r
+    }\r
+}\r
index 71ae4a3427ef71b288c458c9aacf61e865077d72..d09f6da2be80d75346e49e454eca5cd7ce35eb5a 100644 (file)
@@ -249,14 +249,5 @@ namespace DbLinq.Ingres
             }\r
             return outParamValues;\r
         }\r
-\r
-        override protected TypeToLoadData GetProviderTypeName()\r
-        {\r
-            return new TypeToLoadData\r
-            {\r
-                assemblyName = "Ingres.Client.DLL",\r
-                className = "IngresConnection",\r
-            };\r
-        }\r
     }\r
 }\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Ingres/Test/DbLinq.Ingres_test.csproj b/mcs/class/System.Data.Linq/src/DbLinq.Ingres/Test/DbLinq.Ingres_test.csproj
new file mode 100644 (file)
index 0000000..7b97f38
--- /dev/null
@@ -0,0 +1,221 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{858BAFF7-542F-4DBB-9C9B-57FCDE0DB7CE}</ProjectGuid>\r
+    <OutputType>WinExe</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>Test_NUnit_Ingres</RootNamespace>\r
+    <AssemblyName>DbLinq.Ingres_test</AssemblyName>\r
+    <StartupObject>\r
+    </StartupObject>\r
+    <FileUpgradeFlags>\r
+    </FileUpgradeFlags>\r
+    <OldToolsVersion>2.0</OldToolsVersion>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <UpgradeBackupLocation>\r
+    </UpgradeBackupLocation>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;INGRES</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>1</WarningLevel>\r
+    <NoWarn>\r
+    </NoWarn>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;INGRES</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="Ingres.Client, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7ab2d069d405ce41, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\Ingres.Client.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Security" />\r
+    <Reference Include="System.Xml" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\..\..\examples\DbLinq.Ingres.Example\nwind\Northwind.cs">\r
+      <Link>nwind\Northwind.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\lib\DynamicLinq.cs">\r
+      <Link>lib\DynamicLinq.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\CompositePK_Test.cs">\r
+      <Link>Providers\CompositePK_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DynamicLinqTest.cs">\r
+      <Link>Providers\DynamicLinqTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteCommand_Test.cs">\r
+      <Link>Providers\ExecuteCommand_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Advanced.cs">\r
+      <Link>Providers\Linq_101_Samples\Advanced.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Conversion_Operators.cs">\r
+      <Link>Providers\Linq_101_Samples\Conversion_Operators.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs">\r
+      <Link>Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\ExsistIn_Any_All.cs">\r
+      <Link>Providers\Linq_101_Samples\ExsistIn_Any_All.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\GroupBy_Having.cs">\r
+      <Link>Providers\Linq_101_Samples\GroupBy_Having.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Inheritance.cs">\r
+      <Link>Providers\Linq_101_Samples\Inheritance.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Insert_Update_Delete.cs">\r
+      <Link>Providers\Linq_101_Samples\Insert_Update_Delete.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Join.cs">\r
+      <Link>Providers\Linq_101_Samples\Join.cs</Link>\r
+      <SubType>Code</SubType>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs">\r
+      <Link>Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Null.cs">\r
+      <Link>Providers\Linq_101_Samples\Null.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object Loading.cs">\r
+      <Link>Providers\Linq_101_Samples\Object Loading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object_Identity.cs">\r
+      <Link>Providers\Linq_101_Samples\Object_Identity.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\OrderBy.cs">\r
+      <Link>Providers\Linq_101_Samples\OrderBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Paging.cs">\r
+      <Link>Providers\Linq_101_Samples\Paging.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Select_Distinct.cs">\r
+      <Link>Providers\Linq_101_Samples\Select_Distinct.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\String_Date_functions.cs">\r
+      <Link>Providers\Linq_101_Samples\String_Date_functions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Top_Bottom.cs">\r
+      <Link>Providers\Linq_101_Samples\Top_Bottom.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs">\r
+      <Link>Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Views.cs">\r
+      <Link>Providers\Linq_101_Samples\Views.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Where.cs">\r
+      <Link>Providers\Linq_101_Samples\Where.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Program2Ing.cs">\r
+      <Link>Providers\Program2Ing.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Properties\AssemblyInfo.cs">\r
+      <Link>Providers\Properties\AssemblyInfo.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest.cs">\r
+      <Link>Providers\ReadTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_AnyCountFirst.cs">\r
+      <Link>Providers\ReadTests_AnyCountFirst.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Conversions.cs">\r
+      <Link>Providers\ReadTests_Conversions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_DateTimeFunctions.cs">\r
+      <Link>Providers\ReadTests_DateTimeFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_EntitySet.cs">\r
+      <Link>Providers\ReadTests_EntitySet.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Join.cs">\r
+      <Link>Providers\ReadTests_Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Maths.cs">\r
+      <Link>Providers\ReadTests_Maths.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_ReferenceLoading.cs">\r
+      <Link>Providers\ReadTests_ReferenceLoading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_StringFunctions.cs">\r
+      <Link>Providers\ReadTests_StringFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Complex.cs">\r
+      <Link>Providers\ReadTest_Complex.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_GroupBy.cs">\r
+      <Link>Providers\ReadTest_GroupBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Operands.cs">\r
+      <Link>Providers\ReadTest_Operands.cs</Link>\r
+    </Compile>\r
+    <None Include="..\..\DbLinq\Test\Providers\StoredProcTest.cs">\r
+      <Link>Providers\StoredProcTest.cs</Link>\r
+    </None>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Subquery.cs">\r
+      <Link>Providers\ReadTest_Subquery.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Table.cs">\r
+      <Link>Providers\Table.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\TestBase.cs">\r
+      <Link>Providers\TestBase.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Transactions.cs">\r
+      <Link>Providers\Transactions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\VerticalPartitioningTest.cs">\r
+      <Link>Providers\VerticalPartitioningTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest.cs">\r
+      <Link>Providers\WriteTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest_BulkInsert.cs">\r
+      <Link>Providers\WriteTest_BulkInsert.cs</Link>\r
+    </Compile>\r
+    <Compile Include="TestBase.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\101_readme.htm">\r
+      <Link>Providers\Linq_101_Samples\101_readme.htm</Link>\r
+    </None>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\DbLinq.Ingres.csproj">\r
+      <Project>{90D57CD9-D704-409E-88A1-0F22AC79065A}</Project>\r
+      <Name>DbLinq.Ingres</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\..\DbLinq\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Ingres/Test/NorthwindIngres.dbml b/mcs/class/System.Data.Linq/src/DbLinq.Ingres/Test/NorthwindIngres.dbml
new file mode 100644 (file)
index 0000000..04172c2
--- /dev/null
@@ -0,0 +1,158 @@
+<?xml version="1.0"?>\r
+<Database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Northwind" Class="Northwind" Provider="Ingres" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">\r
+  <Table Name="linquser.categories" Member="Categories">\r
+    <Type Name="Category">\r
+      <Association Name="linquser_products_categoryid_linquser_categories_categoryid" Member="Products" Type="Product" ThisKey="CategoryId" OtherKey="CategoryId" />\r
+      <Column Name="categoryid" Member="CategoryId" Storage="categoryId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="next value for &quot;linquser&quot;.&quot;categories_seq&quot;" />\r
+      <Column Name="categoryname" Member="CategoryName" Storage="categoryName" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="description" Member="Description" Storage="description" Type="System.String" DbType="VARCHAR(500)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="picture" Member="Picture" Storage="picture" Type="System.Byte[]" DbType="LONG BYTE" IsPrimaryKey="false" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="linquser.customers" Member="Customers">\r
+    <Type Name="Customer">\r
+      <Association Name="linquser_orders_customerid_linquser_customers_customerid" Member="Orders" Type="Order" ThisKey="CustomerId" OtherKey="CustomerId" />\r
+      <Column Name="address" Member="Address" Storage="address" Type="System.String" DbType="VARCHAR(60)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="city" Member="City" Storage="city" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="companyname" Member="CompanyName" Storage="companyName" Type="System.String" DbType="VARCHAR(40)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="contactname" Member="ContactName" Storage="contactName" Type="System.String" DbType="VARCHAR(30)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="contacttitle" Member="ContactTitle" Storage="contactTitle" Type="System.String" DbType="VARCHAR(30)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="country" Member="Country" Storage="country" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="customerid" Member="CustomerId" Storage="customerId" Type="System.String" DbType="VARCHAR(5)" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="fax" Member="Fax" Storage="fax" Type="System.String" DbType="VARCHAR(24)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="phone" Member="Phone" Storage="phone" Type="System.String" DbType="VARCHAR(24)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="postalcode" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="VARCHAR(10)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="region" Member="Region" Storage="region" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="linquser.employees" Member="Employees">\r
+    <Type Name="Employee">\r
+      <Association Name="linquser_employees_reportsto_linquser_employees_employeeid" Member="ParentEmployee" Storage="linqUserEmployeesReportsToLinqUserEmployeesEmployeeId" Type="Employee" ThisKey="ReportsTo" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="linquser_employees_reportsto_linquser_employees_employeeid" Member="Employees" Type="Employee" ThisKey="EmployeeId" OtherKey="ReportsTo" />\r
+      <Association Name="linquser_employeeterritories_employeeid_linquser_employees_employeeid" Member="EmployeeTerritories" Type="EmployeeTerritory" ThisKey="EmployeeId" OtherKey="EmployeeId" />\r
+      <Association Name="linquser_orders_employeeid_linquser_employees_employeeid" Member="Orders" Type="Order" ThisKey="EmployeeId" OtherKey="EmployeeId" />\r
+      <Column Name="address" Member="Address" Storage="address" Type="System.String" DbType="VARCHAR(60)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="birthdate" Member="BirthDate" Storage="birthDate" Type="System.DateTime" DbType="INGRESDATE" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="city" Member="City" Storage="city" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="country" Member="Country" Storage="country" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="employeeid" Member="EmployeeId" Storage="employeeId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="next value for &quot;linquser&quot;.&quot;employees_seq&quot;" />\r
+      <Column Name="firstname" Member="FirstName" Storage="firstName" Type="System.String" DbType="VARCHAR(10)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="hiredate" Member="HireDate" Storage="hireDate" Type="System.DateTime" DbType="INGRESDATE" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="homephone" Member="HomePhone" Storage="homePhone" Type="System.String" DbType="VARCHAR(24)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="lastname" Member="LastName" Storage="lastName" Type="System.String" DbType="VARCHAR(20)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="notes" Member="Notes" Storage="notes" Type="System.String" DbType="VARCHAR(100)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="photo" Member="Photo" Storage="photo" Type="System.Byte[]" DbType="LONG BYTE" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="postalcode" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="VARCHAR(10)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="region" Member="Region" Storage="region" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="reportsto" Member="ReportsTo" Storage="reportsTo" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="title" Member="Title" Storage="title" Type="System.String" DbType="VARCHAR(30)" IsPrimaryKey="false" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="linquser.employeeterritories" Member="EmployeeTerritories">\r
+    <Type Name="EmployeeTerritory">\r
+      <Association Name="linquser_employeeterritories_territoryid_linquser_territories_territoryid" Member="Territory" Storage="linqUserEmployeeTerritoriesTerritoryIdLinqUserTerritoriesTerritoryId" Type="Territory" ThisKey="TerritoryId" OtherKey="TerritoryId" IsForeignKey="true" />\r
+      <Association Name="linquser_employeeterritories_employeeid_linquser_employees_employeeid" Member="Employee" Storage="linqUserEmployeeTerritoriesEmployeeIdLinqUserEmployeesEmployeeId" Type="Employee" ThisKey="EmployeeId" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Column Name="employeeid" Member="EmployeeId" Storage="employeeId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="territoryid" Member="TerritoryId" Storage="territoryId" Type="System.String" DbType="VARCHAR(20)" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="linquser.iietab_107_108" Member="IIeTab107108">\r
+    <Type Name="IIeTab107108">\r
+      <Column Name="per_key" Member="PerKey" Storage="perKey" Type="System.String" DbType="CHAR(8)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="per_next" Member="PerNext" Storage="perNext" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="per_segment0" Member="PerSegment0" Storage="perSegment0" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="per_segment1" Member="PerSegment1" Storage="perSegment1" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="per_value" Member="PerValue" Storage="perValue" Type="System.Byte[]" DbType="BYTE VARYING" IsPrimaryKey="false" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="linquser.iietab_12b_12c" Member="IIeTab12B12C">\r
+    <Type Name="IIeTab12B12C">\r
+      <Column Name="per_key" Member="PerKey" Storage="perKey" Type="System.String" DbType="CHAR(8)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="per_next" Member="PerNext" Storage="perNext" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="per_segment0" Member="PerSegment0" Storage="perSegment0" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="per_segment1" Member="PerSegment1" Storage="perSegment1" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="per_value" Member="PerValue" Storage="perValue" Type="System.Byte[]" DbType="BYTE VARYING" IsPrimaryKey="false" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="linquser.orders" Member="Orders">\r
+    <Type Name="Order">\r
+      <Association Name="linquser_orders_employeeid_linquser_employees_employeeid" Member="Employee" Storage="linqUserOrdersEmployeeIdLinqUserEmployeesEmployeeId" Type="Employee" ThisKey="EmployeeId" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="linquser_orders_customerid_linquser_customers_customerid" Member="Customer" Storage="linqUserOrdersCustomerIdLinqUserCustomersCustomerId" Type="Customer" ThisKey="CustomerId" OtherKey="CustomerId" IsForeignKey="true" />\r
+      <Association Name="linquser_orderdetails_orderid_linquser_orders_orderid" Member="OrderDetails" Type="OrderDetail" ThisKey="OrderId" OtherKey="OrderId" />\r
+      <Column Name="customerid" Member="CustomerId" Storage="customerId" Type="System.String" DbType="VARCHAR(5)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="employeeid" Member="EmployeeId" Storage="employeeId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="freight" Member="Freight" Storage="freight" Type="System.Decimal" DbType="DECIMAL(5, 0)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="orderdate" Member="OrderDate" Storage="orderDate" Type="System.DateTime" DbType="INGRESDATE" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="orderid" Member="OrderId" Storage="orderId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="next value for &quot;linquser&quot;.&quot;categories_seq&quot;" />\r
+      <Column Name="requireddate" Member="RequiredDate" Storage="requiredDate" Type="System.DateTime" DbType="INGRESDATE" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="shipaddress" Member="ShipAddress" Storage="shipAddress" Type="System.String" DbType="VARCHAR(60)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="shipcity" Member="ShipCity" Storage="shipCity" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="shipcountry" Member="ShipCountry" Storage="shipCountry" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="shipname" Member="ShipName" Storage="shipName" Type="System.String" DbType="VARCHAR(40)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="shippeddate" Member="ShippedDate" Storage="shippedDate" Type="System.DateTime" DbType="INGRESDATE" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="shippostalcode" Member="ShipPostalCode" Storage="shipPostalCode" Type="System.String" DbType="VARCHAR(10)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="shipregion" Member="ShipRegion" Storage="shipRegion" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="shipvia" Member="ShipVia" Storage="shipVia" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="false" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="linquser.orderdetails" Member="OrderDetails">\r
+    <Type Name="OrderDetail">\r
+      <Association Name="linquser_orderdetails_productid_linquser_products_productid" Member="Product" Storage="linqUserOrderDetailsProductIdLinqUserProductsProductId" Type="Product" ThisKey="ProductId" OtherKey="ProductId" IsForeignKey="true" />\r
+      <Association Name="linquser_orderdetails_orderid_linquser_orders_orderid" Member="Order" Storage="linqUserOrderDetailsOrderIdLinqUserOrdersOrderId" Type="Order" ThisKey="OrderId" OtherKey="OrderId" IsForeignKey="true" />\r
+      <Column Name="discount" Member="Discount" Storage="discount" Type="System.Double" DbType="FLOAT" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="orderid" Member="OrderId" Storage="orderId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="productid" Member="ProductId" Storage="productId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="quantity" Member="Quantity" Storage="quantity" Type="System.Int16" DbType="INTEGER(2)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="unitprice" Member="UnitPrice" Storage="unitPrice" Type="System.Decimal" DbType="DECIMAL(5, 0)" IsPrimaryKey="false" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="linquser.products" Member="Products">\r
+    <Type Name="Product">\r
+      <Association Name="linquser_products_supplierid_linquser_suppliers_supplierid" Member="Supplier" Storage="linqUserProductsSupplierIdLinqUserSuppliersSupplierId" Type="Supplier" ThisKey="SupplierId" OtherKey="SupplierId" IsForeignKey="true" />\r
+      <Association Name="linquser_products_categoryid_linquser_categories_categoryid" Member="Category" Storage="linqUserProductsCategoryIdLinqUserCategoriesCategoryId" Type="Category" ThisKey="CategoryId" OtherKey="CategoryId" IsForeignKey="true" />\r
+      <Association Name="linquser_orderdetails_productid_linquser_products_productid" Member="OrderDetails" Type="OrderDetail" ThisKey="ProductId" OtherKey="ProductId" />\r
+      <Column Name="categoryid" Member="CategoryId" Storage="categoryId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="discontinued" Member="Discontinued" Storage="discontinued" Type="System.Int16" DbType="INTEGER(2)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="productid" Member="ProductId" Storage="productId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="next value for &quot;linquser&quot;.&quot;products_seq&quot;" />\r
+      <Column Name="productname" Member="ProductName" Storage="productName" Type="System.String" DbType="VARCHAR(40)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="quantityperunit" Member="QuantityPerUnit" Storage="quantityPerUnit" Type="System.String" DbType="VARCHAR(20)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="reorderlevel" Member="ReorderLevel" Storage="reorderLevel" Type="System.Int16" DbType="INTEGER(2)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="supplierid" Member="SupplierId" Storage="supplierId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="unitprice" Member="UnitPrice" Storage="unitPrice" Type="System.Decimal" DbType="DECIMAL(5, 0)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="unitsinstock" Member="UnitsInStock" Storage="unitsInStock" Type="System.Int16" DbType="INTEGER(2)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="unitsonorder" Member="UnitsOnOrder" Storage="unitsOnOrder" Type="System.Int16" DbType="INTEGER(2)" IsPrimaryKey="false" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="linquser.region" Member="Regions">\r
+    <Type Name="Region">\r
+      <Association Name="linquser_territories_regionid_linquser_region_regionid" Member="Territories" Type="Territory" ThisKey="RegionId" OtherKey="RegionId" />\r
+      <Column Name="regiondescription" Member="RegionDescription" Storage="regionDescription" Type="System.String" DbType="VARCHAR(50)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="regionid" Member="RegionId" Storage="regionId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="next value for &quot;linquser&quot;.&quot;region_seq&quot;" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="linquser.suppliers" Member="Suppliers">\r
+    <Type Name="Supplier">\r
+      <Association Name="linquser_products_supplierid_linquser_suppliers_supplierid" Member="Products" Type="Product" ThisKey="SupplierId" OtherKey="SupplierId" />\r
+      <Column Name="address" Member="Address" Storage="address" Type="System.String" DbType="VARCHAR(60)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="city" Member="City" Storage="city" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="companyname" Member="CompanyName" Storage="companyName" Type="System.String" DbType="VARCHAR(40)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="contactname" Member="ContactName" Storage="contactName" Type="System.String" DbType="VARCHAR(30)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="contacttitle" Member="ContactTitle" Storage="contactTitle" Type="System.String" DbType="VARCHAR(30)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="country" Member="Country" Storage="country" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="fax" Member="Fax" Storage="fax" Type="System.String" DbType="VARCHAR(24)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="phone" Member="Phone" Storage="phone" Type="System.String" DbType="VARCHAR(24)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="postalcode" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="VARCHAR(10)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="region" Member="Region" Storage="region" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="supplierid" Member="SupplierId" Storage="supplierId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="next value for &quot;linquser&quot;.&quot;suppliers_seq&quot;" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="linquser.territories" Member="Territories">\r
+    <Type Name="Territory">\r
+      <Association Name="linquser_territories_regionid_linquser_region_regionid" Member="Region" Storage="linqUserTerritoriesRegionIdLinqUserRegionRegionId" Type="Region" ThisKey="RegionId" OtherKey="RegionId" IsForeignKey="true" />\r
+      <Association Name="linquser_employeeterritories_territoryid_linquser_territories_territoryid" Member="EmployeeTerritories" Type="EmployeeTerritory" ThisKey="TerritoryId" OtherKey="TerritoryId" />\r
+      <Column Name="regionid" Member="RegionId" Storage="regionId" Type="System.Int32" DbType="INTEGER(4)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="territorydescription" Member="TerritoryDescription" Storage="territoryDescription" Type="System.String" DbType="VARCHAR(50)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="territoryid" Member="TerritoryId" Storage="territoryId" Type="System.String" DbType="VARCHAR(20)" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+</Database>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Ingres/Test/TestBase.cs b/mcs/class/System.Data.Linq/src/DbLinq.Ingres/Test/TestBase.cs
new file mode 100755 (executable)
index 0000000..28c0bce
--- /dev/null
@@ -0,0 +1,52 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Data;\r
+\r
+namespace Test_NUnit\r
+{\r
+    public abstract partial class TestBase\r
+    {\r
+        public const StringComparison stringComparisonType = StringComparison.Ordinal;\r
+\r
+        public static IDbCommand CreateCommand (string sql, IDbConnection conn)\r
+        {\r
+            return new Ingres.Client.IngresCommand(sql, (Ingres.Client.IngresConnection) conn);\r
+        }\r
+\r
+        public static IDbConnection CreateConnection (string connectionString)\r
+        {\r
+            return new Ingres.Client.IngresConnection(connectionString);\r
+        }\r
+\r
+        public DbLinq.Vendor.IVendor CreateVendor()\r
+        {\r
+            return new DbLinq.Ingres.IngresVendor();\r
+        }\r
+    }\r
+}\r
index b67f1b2699a17b05f2ecd705465b47071df3cb18..670c6e2bc333b0d55e31c66f8988de931dca1684 100755 (executable)
@@ -19,7 +19,7 @@
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
     <Optimize>false</Optimize>\r
-    <OutputPath>bin\Debug\</OutputPath>\r
+    <OutputPath>..\..\build.dbg\</OutputPath>\r
     <DefineConstants>DEBUG;TRACE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
@@ -76,4 +76,4 @@
   <Target Name="AfterBuild">\r
   </Target>\r
   -->\r
-</Project>
\ No newline at end of file
+</Project>\r
index 8dc4b0b196f4aa717c2b105818c7cbcca3999491..fcebe700cc2d1454d4620b93c752bbb47edbf299 100644 (file)
@@ -288,15 +288,5 @@ namespace DbLinq.MySql
             }\r
             return outParamValues;\r
         }\r
-\r
-        override protected TypeToLoadData GetProviderTypeName()\r
-        {\r
-            return new TypeToLoadData\r
-            {\r
-                assemblyName = "MySql.Data.DLL",\r
-                className = "MySqlConnection",\r
-            };\r
-        }\r
-\r
     }\r
 }\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/DbLinq.MySql_test.csproj b/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/DbLinq.MySql_test.csproj
new file mode 100644 (file)
index 0000000..748ef29
--- /dev/null
@@ -0,0 +1,239 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{858BAFF7-542F-4DBB-9C9B-57FCDE4DB7CE}</ProjectGuid>\r
+    <OutputType>WinExe</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>Test_NUnit</RootNamespace>\r
+    <AssemblyName>DbLinq.MySql_test</AssemblyName>\r
+    <StartupObject>\r
+    </StartupObject>\r
+    <FileUpgradeFlags>\r
+    </FileUpgradeFlags>\r
+    <OldToolsVersion>2.0</OldToolsVersion>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <UpgradeBackupLocation>\r
+    </UpgradeBackupLocation>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;MYSQL</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>1</WarningLevel>\r
+    <NoWarn>\r
+    </NoWarn>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;MYSQL</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="MySql.Data, Version=1.0.7.30072, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\MySql.Data.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Security" />\r
+    <Reference Include="System.Windows.Forms" />\r
+    <Reference Include="System.Xml" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\..\..\examples\DbLinq.MySql.Example\nwind\AllTypes.cs">\r
+      <Link>nwind\AllTypes.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\examples\DbLinq.MySql.Example\nwind\DbLinq_EnumTest.cs">\r
+      <Link>nwind\DbLinq_EnumTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\examples\DbLinq.MySql.Example\nwind\Northwind.cs">\r
+      <Link>nwind\Northwind.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\lib\DynamicLinq.cs">\r
+      <Link>lib\DynamicLinq.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Attach.cs">\r
+      <Link>Providers\Attach.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\CompositePK_Test.cs">\r
+      <Link>Providers\CompositePK_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DynamicLinqTest.cs">\r
+      <Link>Providers\DynamicLinqTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteCommand_Test.cs">\r
+      <Link>Providers\ExecuteCommand_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteQuery_Test.cs">\r
+      <Link>Providers\ExecuteQuery_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Advanced.cs">\r
+      <Link>Providers\Linq_101_Samples\Advanced.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Conversion_Operators.cs">\r
+      <Link>Providers\Linq_101_Samples\Conversion_Operators.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs">\r
+      <Link>Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\ExsistIn_Any_All.cs">\r
+      <Link>Providers\Linq_101_Samples\ExsistIn_Any_All.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\GroupBy_Having.cs">\r
+      <Link>Providers\Linq_101_Samples\GroupBy_Having.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Inheritance.cs">\r
+      <Link>Providers\Linq_101_Samples\Inheritance.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Insert_Update_Delete.cs">\r
+      <Link>Providers\Linq_101_Samples\Insert_Update_Delete.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Join.cs">\r
+      <Link>Providers\Linq_101_Samples\Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs">\r
+      <Link>Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Null.cs">\r
+      <Link>Providers\Linq_101_Samples\Null.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object Loading.cs">\r
+      <Link>Providers\Linq_101_Samples\Object Loading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object_Identity.cs">\r
+      <Link>Providers\Linq_101_Samples\Object_Identity.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\OrderBy.cs">\r
+      <Link>Providers\Linq_101_Samples\OrderBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Paging.cs">\r
+      <Link>Providers\Linq_101_Samples\Paging.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Select_Distinct.cs">\r
+      <Link>Providers\Linq_101_Samples\Select_Distinct.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\String_Date_functions.cs">\r
+      <Link>Providers\Linq_101_Samples\String_Date_functions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Top_Bottom.cs">\r
+      <Link>Providers\Linq_101_Samples\Top_Bottom.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs">\r
+      <Link>Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Views.cs">\r
+      <Link>Providers\Linq_101_Samples\Views.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Where.cs">\r
+      <Link>Providers\Linq_101_Samples\Where.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\MetalTest.cs">\r
+      <Link>Providers\MetalTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Program2Mysql.cs">\r
+      <Link>Providers\Program2Mysql.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Properties\AssemblyInfo.cs">\r
+      <Link>Providers\Properties\AssemblyInfo.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest.cs">\r
+      <Link>Providers\ReadTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_AnyCountFirst.cs">\r
+      <Link>Providers\ReadTests_AnyCountFirst.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Conversions.cs">\r
+      <Link>Providers\ReadTests_Conversions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_DateTimeFunctions.cs">\r
+      <Link>Providers\ReadTests_DateTimeFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_EntitySet.cs">\r
+      <Link>Providers\ReadTests_EntitySet.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Join.cs">\r
+      <Link>Providers\ReadTests_Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Maths.cs">\r
+      <Link>Providers\ReadTests_Maths.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_ReferenceLoading.cs">\r
+      <Link>Providers\ReadTests_ReferenceLoading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_StringFunctions.cs">\r
+      <Link>Providers\ReadTests_StringFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Complex.cs">\r
+      <Link>Providers\ReadTest_Complex.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_GroupBy.cs">\r
+      <Link>Providers\ReadTest_GroupBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Operands.cs">\r
+      <Link>Providers\ReadTest_Operands.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Subquery.cs">\r
+      <Link>Providers\ReadTest_Subquery.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\StoredProcTest.cs">\r
+      <Link>Providers\StoredProcTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Table.cs">\r
+      <Link>Providers\Table.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\TestBase.cs">\r
+      <Link>Providers\TestBase.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Internals\ReflectionTest.cs">\r
+      <Link>Providers\Internals\ReflectionTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Transactions.cs">\r
+      <Link>Providers\Transactions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\VerticalPartitioningTest.cs">\r
+      <Link>Providers\VerticalPartitioningTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest.cs">\r
+      <Link>Providers\WriteTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest_BulkInsert.cs">\r
+      <Link>Providers\WriteTest_BulkInsert.cs</Link>\r
+    </Compile>\r
+    <Compile Include="TestBase.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\101_readme.htm">\r
+      <Link>Providers\Linq_101_Samples\101_readme.htm</Link>\r
+    </None>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\DbLinq.MySql.csproj">\r
+      <Project>{FA8D1068-3341-4956-BF94-54C6A816BD9E}</Project>\r
+      <Name>DbLinq.MySql</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\..\DbLinq\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/DbLinq.MySql_test_vb.vbproj b/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/DbLinq.MySql_test_vb.vbproj
new file mode 100644 (file)
index 0000000..b8cb0a1
--- /dev/null
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{E6E31FB6-1559-44E1-AFA2-C11981A591FC}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <RootNamespace>Test_NUnit_Mysql_VB</RootNamespace>\r
+    <AssemblyName>DbLinq.MySql_test_vb</AssemblyName>\r
+    <FileAlignment>512</FileAlignment>\r
+    <MyType>Windows</MyType>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <OptionExplicit>On</OptionExplicit>\r
+    <OptionCompare>Binary</OptionCompare>\r
+    <OptionStrict>Off</OptionStrict>\r
+    <OptionInfer>On</OptionInfer>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <DefineDebug>true</DefineDebug>\r
+    <DefineTrace>true</DefineTrace>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DocumentationFile>DbLinq.MySql_test_vb.xml</DocumentationFile>\r
+    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <DefineDebug>false</DefineDebug>\r
+    <DefineTrace>true</DefineTrace>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DocumentationFile>DbLinq.MySql_test_vb.xml</DocumentationFile>\r
+    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="MySql.Data, Version=5.0.8.1, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\lib\MySql.Data.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.core, Version=2.2.9.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\lib\nunit.core.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.framework, Version=2.2.9.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Xml" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Xml.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data.DataSetExtensions">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Import Include="Microsoft.VisualBasic" />\r
+    <Import Include="System" />\r
+    <Import Include="System.Collections" />\r
+    <Import Include="System.Collections.Generic" />\r
+    <Import Include="System.Data" />\r
+    <Import Include="System.Diagnostics" />\r
+    <Import Include="System.Linq" />\r
+    <Import Include="System.Xml.Linq" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="My Project\AssemblyInfo.vb" />\r
+    <Compile Include="My Project\Application.Designer.vb">\r
+      <AutoGen>True</AutoGen>\r
+      <DependentUpon>Application.myapp</DependentUpon>\r
+    </Compile>\r
+    <Compile Include="My Project\Resources.Designer.vb">\r
+      <AutoGen>True</AutoGen>\r
+      <DesignTime>True</DesignTime>\r
+      <DependentUpon>Resources.resx</DependentUpon>\r
+    </Compile>\r
+    <Compile Include="My Project\Settings.Designer.vb">\r
+      <AutoGen>True</AutoGen>\r
+      <DependentUpon>Settings.settings</DependentUpon>\r
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>\r
+    </Compile>\r
+    <Compile Include="VBTests.vb" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <EmbeddedResource Include="My Project\Resources.resx">\r
+      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>\r
+      <LastGenOutput>Resources.Designer.vb</LastGenOutput>\r
+      <CustomToolNamespace>My.Resources</CustomToolNamespace>\r
+      <SubType>Designer</SubType>\r
+    </EmbeddedResource>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="My Project\Application.myapp">\r
+      <Generator>MyApplicationCodeGenerator</Generator>\r
+      <LastGenOutput>Application.Designer.vb</LastGenOutput>\r
+    </None>\r
+    <None Include="My Project\Settings.settings">\r
+      <Generator>SettingsSingleFileGenerator</Generator>\r
+      <CustomToolNamespace>My</CustomToolNamespace>\r
+      <LastGenOutput>Settings.Designer.vb</LastGenOutput>\r
+    </None>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\..\DbLinq\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="DbLinq.MySql_test.csproj">\r
+      <Project>{858BAFF7-542F-4DBB-9C9B-57FCDE4DB7CE}</Project>\r
+      <Name>DbLinq.MySql_test</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />\r
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
+       Other similar extension points exist, see Microsoft.Common.targets.\r
+  <Target Name="BeforeBuild">\r
+  </Target>\r
+  <Target Name="AfterBuild">\r
+  </Target>\r
+  -->\r
+</Project>\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Application.Designer.vb b/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Application.Designer.vb
new file mode 100644 (file)
index 0000000..a17403f
--- /dev/null
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------\r
+' <auto-generated>\r
+'     This code was generated by a tool.\r
+'     Runtime Version:2.0.50727.1434\r
+'\r
+'     Changes to this file may cause incorrect behavior and will be lost if\r
+'     the code is regenerated.\r
+' </auto-generated>\r
+'------------------------------------------------------------------------------\r
+\r
+Option Strict On\r
+Option Explicit On\r
+\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Application.myapp b/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Application.myapp
new file mode 100644 (file)
index 0000000..0167050
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">\r
+  <MySubMain>false</MySubMain>\r
+  <SingleInstance>false</SingleInstance>\r
+  <ShutdownMode>0</ShutdownMode>\r
+  <EnableVisualStyles>true</EnableVisualStyles>\r
+  <AuthenticationMode>0</AuthenticationMode>\r
+  <ApplicationType>1</ApplicationType>\r
+  <SaveMySettingsOnExit>true</SaveMySettingsOnExit>\r
+</MyApplicationData>\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/AssemblyInfo.vb b/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/AssemblyInfo.vb
new file mode 100644 (file)
index 0000000..2f1971c
--- /dev/null
@@ -0,0 +1,35 @@
+Imports System\r
+Imports System.Reflection\r
+Imports System.Runtime.InteropServices\r
+\r
+' General Information about an assembly is controlled through the following \r
+' set of attributes. Change these attribute values to modify the information\r
+' associated with an assembly.\r
+\r
+' Review the values of the assembly attributes\r
+\r
+<Assembly: AssemblyTitle("Test_NUnit_Mysql_VB")> \r
+<Assembly: AssemblyDescription("")> \r
+<Assembly: AssemblyCompany("")> \r
+<Assembly: AssemblyProduct("Test_NUnit_Mysql_VB")> \r
+<Assembly: AssemblyCopyright("Copyright ©  2008")> \r
+<Assembly: AssemblyTrademark("")> \r
+\r
+<Assembly: ComVisible(False)>\r
+\r
+'The following GUID is for the ID of the typelib if this project is exposed to COM\r
+<Assembly: Guid("a8590f10-b5f6-4280-9d9a-8309abbead59")> \r
+\r
+' Version information for an assembly consists of the following four values:\r
+'\r
+'      Major Version\r
+'      Minor Version \r
+'      Build Number\r
+'      Revision\r
+'\r
+' You can specify all the values or you can default the Build and Revision Numbers \r
+' by using the '*' as shown below:\r
+' <Assembly: AssemblyVersion("1.0.*")> \r
+\r
+<Assembly: AssemblyVersion("1.0.0.0")> \r
+<Assembly: AssemblyFileVersion("1.0.0.0")> \r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Resources.Designer.vb b/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Resources.Designer.vb
new file mode 100644 (file)
index 0000000..1b7f01f
--- /dev/null
@@ -0,0 +1,62 @@
+'------------------------------------------------------------------------------\r
+' <auto-generated>\r
+'     This code was generated by a tool.\r
+'     Runtime Version:2.0.50727.1434\r
+'\r
+'     Changes to this file may cause incorrect behavior and will be lost if\r
+'     the code is regenerated.\r
+' </auto-generated>\r
+'------------------------------------------------------------------------------\r
+\r
+Option Strict On\r
+Option Explicit On\r
+\r
+\r
+Namespace My.Resources\r
+    \r
+    'This class was auto-generated by the StronglyTypedResourceBuilder\r
+    'class via a tool like ResGen or Visual Studio.\r
+    'To add or remove a member, edit your .ResX file then rerun ResGen\r
+    'with the /str option, or rebuild your VS project.\r
+    '<summary>\r
+    '  A strongly-typed resource class, for looking up localized strings, etc.\r
+    '</summary>\r
+    <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0"),  _\r
+     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _\r
+     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _\r
+     Global.Microsoft.VisualBasic.HideModuleNameAttribute()>  _\r
+    Friend Module Resources\r
+        \r
+        Private resourceMan As Global.System.Resources.ResourceManager\r
+        \r
+        Private resourceCulture As Global.System.Globalization.CultureInfo\r
+        \r
+        '<summary>\r
+        '  Returns the cached ResourceManager instance used by this class.\r
+        '</summary>\r
+        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _\r
+        Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager\r
+            Get\r
+                If Object.ReferenceEquals(resourceMan, Nothing) Then\r
+                    Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Test_NUnit_Mysql_VB.Resources", GetType(Resources).Assembly)\r
+                    resourceMan = temp\r
+                End If\r
+                Return resourceMan\r
+            End Get\r
+        End Property\r
+        \r
+        '<summary>\r
+        '  Overrides the current thread's CurrentUICulture property for all\r
+        '  resource lookups using this strongly typed resource class.\r
+        '</summary>\r
+        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _\r
+        Friend Property Culture() As Global.System.Globalization.CultureInfo\r
+            Get\r
+                Return resourceCulture\r
+            End Get\r
+            Set(ByVal value As Global.System.Globalization.CultureInfo)\r
+                resourceCulture = value\r
+            End Set\r
+        End Property\r
+    End Module\r
+End Namespace\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Resources.resx b/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Resources.resx
new file mode 100644 (file)
index 0000000..ffecec8
--- /dev/null
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<root>\r
+  <!-- \r
+    Microsoft ResX Schema \r
+    \r
+    Version 2.0\r
+    \r
+    The primary goals of this format is to allow a simple XML format \r
+    that is mostly human readable. The generation and parsing of the \r
+    various data types are done through the TypeConverter classes \r
+    associated with the data types.\r
+    \r
+    Example:\r
+    \r
+    ... ado.net/XML headers & schema ...\r
+    <resheader name="resmimetype">text/microsoft-resx</resheader>\r
+    <resheader name="version">2.0</resheader>\r
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\r
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\r
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>\r
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>\r
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">\r
+        <value>[base64 mime encoded serialized .NET Framework object]</value>\r
+    </data>\r
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\r
+        <comment>This is a comment</comment>\r
+    </data>\r
+                \r
+    There are any number of "resheader" rows that contain simple \r
+    name/value pairs.\r
+    \r
+    Each data row contains a name, and value. The row also contains a \r
+    type or mimetype. Type corresponds to a .NET class that support \r
+    text/value conversion through the TypeConverter architecture. \r
+    Classes that don't support this are serialized and stored with the \r
+    mimetype set.\r
+    \r
+    The mimetype is used for serialized objects, and tells the \r
+    ResXResourceReader how to depersist the object. This is currently not \r
+    extensible. For a given mimetype the value must be set accordingly:\r
+    \r
+    Note - application/x-microsoft.net.object.binary.base64 is the format \r
+    that the ResXResourceWriter will generate, however the reader can \r
+    read any of the formats listed below.\r
+    \r
+    mimetype: application/x-microsoft.net.object.binary.base64\r
+    value   : The object must be serialized with \r
+            : System.Serialization.Formatters.Binary.BinaryFormatter\r
+            : and then encoded with base64 encoding.\r
+    \r
+    mimetype: application/x-microsoft.net.object.soap.base64\r
+    value   : The object must be serialized with \r
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\r
+            : and then encoded with base64 encoding.\r
+\r
+    mimetype: application/x-microsoft.net.object.bytearray.base64\r
+    value   : The object must be serialized into a byte array \r
+            : using a System.ComponentModel.TypeConverter\r
+            : and then encoded with base64 encoding.\r
+    -->\r
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">\r
+    <xsd:element name="root" msdata:IsDataSet="true">\r
+      <xsd:complexType>\r
+        <xsd:choice maxOccurs="unbounded">\r
+          <xsd:element name="metadata">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" />\r
+              <xsd:attribute name="type" type="xsd:string" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="assembly">\r
+            <xsd:complexType>\r
+              <xsd:attribute name="alias" type="xsd:string" />\r
+              <xsd:attribute name="name" type="xsd:string" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="data">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />\r
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="resheader">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+        </xsd:choice>\r
+      </xsd:complexType>\r
+    </xsd:element>\r
+  </xsd:schema>\r
+  <resheader name="resmimetype">\r
+    <value>text/microsoft-resx</value>\r
+  </resheader>\r
+  <resheader name="version">\r
+    <value>2.0</value>\r
+  </resheader>\r
+  <resheader name="reader">\r
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <resheader name="writer">\r
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+</root>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Settings.Designer.vb b/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Settings.Designer.vb
new file mode 100644 (file)
index 0000000..fa453ca
--- /dev/null
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------\r
+' <auto-generated>\r
+'     This code was generated by a tool.\r
+'     Runtime Version:2.0.50727.1434\r
+'\r
+'     Changes to this file may cause incorrect behavior and will be lost if\r
+'     the code is regenerated.\r
+' </auto-generated>\r
+'------------------------------------------------------------------------------\r
+\r
+Option Strict On\r
+Option Explicit On\r
+\r
+\r
+Namespace My\r
+\r
+    <Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _\r
+     Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0"),  _\r
+     Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _\r
+    Partial Friend NotInheritable Class MySettings\r
+        Inherits Global.System.Configuration.ApplicationSettingsBase\r
+        \r
+        Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)\r
+        \r
+#Region "My.Settings Auto-Save Functionality"\r
+#If _MyType = "WindowsForms" Then\r
+        Private Shared addedHandler As Boolean\r
+\r
+        Private Shared addedHandlerLockObject As New Object\r
+\r
+        <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _\r
+        Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)\r
+            If My.Application.SaveMySettingsOnExit Then\r
+                My.Settings.Save()\r
+            End If\r
+        End Sub\r
+#End If\r
+#End Region\r
+        \r
+        Public Shared ReadOnly Property [Default]() As MySettings\r
+            Get\r
+                \r
+#If _MyType = "WindowsForms" Then\r
+                   If Not addedHandler Then\r
+                        SyncLock addedHandlerLockObject\r
+                            If Not addedHandler Then\r
+                                AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings\r
+                                addedHandler = True\r
+                            End If\r
+                        End SyncLock\r
+                    End If\r
+#End If\r
+                Return defaultInstance\r
+            End Get\r
+        End Property\r
+    End Class\r
+End Namespace\r
+\r
+Namespace My\r
+    \r
+    <Global.Microsoft.VisualBasic.HideModuleNameAttribute(),  _\r
+     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _\r
+     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()>  _\r
+    Friend Module MySettingsProperty\r
+        \r
+        <Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")>  _\r
+        Friend ReadOnly Property Settings() As Global.Test_NUnit_Mysql_VB.My.MySettings\r
+            Get\r
+                Return Global.Test_NUnit_Mysql_VB.My.MySettings.Default\r
+            End Get\r
+        End Property\r
+    End Module\r
+End Namespace\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Settings.settings b/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/My Project/Settings.settings
new file mode 100644 (file)
index 0000000..377f56d
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>\r
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">\r
+  <Profiles>\r
+    <Profile Name="(Default)" />\r
+  </Profiles>\r
+  <Settings />\r
+</SettingsFile>\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/NorthwindMySql.dbml b/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/NorthwindMySql.dbml
new file mode 100644 (file)
index 0000000..63a563d
--- /dev/null
@@ -0,0 +1,180 @@
+<?xml version="1.0"?>\r
+<Database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Northwind" Class="Northwind" Provider="MySQL" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">\r
+  <Table Name="northwind.casetest" Member="CaseTests">\r
+    <Type Name="CaseTest">\r
+      <Column Name="NoCase" Member="NoCase" Storage="noCase" Type="System.String" DbType="varchar(25)" CanBeNull="true" />\r
+      <Column Name="value0" Member="Value0" Storage="value0" Type="System.UInt32" DbType="int(20) unsigned" CanBeNull="false" />\r
+      <Column Name="WithCase" Member="WithCase" Storage="withCase" Type="System.String" DbType="varchar(25)" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="northwind.categories" Member="Categories">\r
+    <Type Name="Category">\r
+      <Association Name="products_ibfk_1" Member="Products" Type="Product" ThisKey="CategoryId" OtherKey="CategoryId" />\r
+      <Column Name="CategoryID" Member="CategoryId" Storage="categoryId" Type="System.Int32" DbType="int" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+      <Column Name="CategoryName" Member="CategoryName" Storage="categoryName" Type="System.String" DbType="varchar(15)" CanBeNull="false" />\r
+      <Column Name="Description" Member="Description" Storage="description" Type="System.String" DbType="text" CanBeNull="true" />\r
+      <Column Name="Picture" Member="Picture" Storage="picture" Type="System.Byte[]" DbType="blob" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="northwind.customers" Member="Customers">\r
+    <Type Name="Customer">\r
+      <Association Name="orders_ibfk_1" Member="Orders" Type="Order" ThisKey="CustomerId" OtherKey="CustomerId" />\r
+      <Column Name="Address" Member="Address" Storage="address" Type="System.String" DbType="varchar(60)" CanBeNull="true" />\r
+      <Column Name="City" Member="City" Storage="city" Type="System.String" DbType="varchar(15)" CanBeNull="true" />\r
+      <Column Name="CompanyName" Member="CompanyName" Storage="companyName" Type="System.String" DbType="varchar(40)" CanBeNull="false" />\r
+      <Column Name="ContactName" Member="ContactName" Storage="contactName" Type="System.String" DbType="varchar(30)" CanBeNull="true" />\r
+      <Column Name="ContactTitle" Member="ContactTitle" Storage="contactTitle" Type="System.String" DbType="varchar(30)" CanBeNull="true" />\r
+      <Column Name="Country" Member="Country" Storage="country" Type="System.String" DbType="varchar(15)" CanBeNull="true" />\r
+      <Column Name="CustomerID" Member="CustomerId" Storage="customerId" Type="System.String" DbType="varchar(5)" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="Fax" Member="Fax" Storage="fax" Type="System.String" DbType="varchar(24)" CanBeNull="true" />\r
+      <Column Name="Phone" Member="Phone" Storage="phone" Type="System.String" DbType="varchar(24)" CanBeNull="true" />\r
+      <Column Name="PostalCode" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="varchar(10)" CanBeNull="true" />\r
+      <Column Name="Region" Member="Region" Storage="region" Type="System.String" DbType="varchar(15)" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="northwind.employees" Member="Employees">\r
+    <Type Name="Employee">\r
+      <Association Name="employees_ibfk_1" Member="ParentEmployee" Storage="employeesIBFk1" Type="Employee" ThisKey="ReportsTo" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="employees_ibfk_1" Member="Employees" Type="Employee" ThisKey="EmployeeId" OtherKey="ReportsTo" />\r
+      <Association Name="employeeterritories_ibfk_1" Member="EmployeeTerritories" Type="EmployeeTerritory" ThisKey="EmployeeId" OtherKey="EmployeeId" />\r
+      <Association Name="orders_ibfk_2" Member="Orders" Type="Order" ThisKey="EmployeeId" OtherKey="EmployeeId" />\r
+      <Column Name="Address" Member="Address" Storage="address" Type="System.String" DbType="varchar(60)" CanBeNull="true" />\r
+      <Column Name="BirthDate" Member="BirthDate" Storage="birthDate" Type="System.DateTime" DbType="datetime" CanBeNull="true" />\r
+      <Column Name="City" Member="City" Storage="city" Type="System.String" DbType="varchar(15)" CanBeNull="true" />\r
+      <Column Name="Country" Member="Country" Storage="country" Type="System.String" DbType="varchar(15)" CanBeNull="true" />\r
+      <Column Name="EmployeeID" Member="EmployeeId" Storage="employeeId" Type="System.Int32" DbType="int" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+      <Column Name="FirstName" Member="FirstName" Storage="firstName" Type="System.String" DbType="varchar(10)" CanBeNull="false" />\r
+      <Column Name="HireDate" Member="HireDate" Storage="hireDate" Type="System.DateTime" DbType="datetime" CanBeNull="true" />\r
+      <Column Name="HomePhone" Member="HomePhone" Storage="homePhone" Type="System.String" DbType="varchar(24)" CanBeNull="true" />\r
+      <Column Name="LastName" Member="LastName" Storage="lastName" Type="System.String" DbType="varchar(20)" CanBeNull="false" />\r
+      <Column Name="Notes" Member="Notes" Storage="notes" Type="System.String" DbType="text" CanBeNull="true" />\r
+      <Column Name="Photo" Member="Photo" Storage="photo" Type="System.Byte[]" DbType="blob" CanBeNull="true" />\r
+      <Column Name="PostalCode" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="varchar(10)" CanBeNull="true" />\r
+      <Column Name="Region" Member="Region" Storage="region" Type="System.String" DbType="varchar(15)" CanBeNull="true" />\r
+      <Column Name="ReportsTo" Member="ReportsTo" Storage="reportsTo" Type="System.Int32" DbType="int" CanBeNull="true" />\r
+      <Column Name="Title" Member="Title" Storage="title" Type="System.String" DbType="varchar(30)" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="northwind.employeeterritories" Member="EmployeeTerritories">\r
+    <Type Name="EmployeeTerritory">\r
+      <Association Name="employeeterritories_ibfk_1" Member="Employee" Storage="employeeTerritoriesIBFk1" Type="Employee" ThisKey="EmployeeId" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="employeeterritories_ibfk_2" Member="Territory" Storage="employeeTerritoriesIBFk2" Type="Territory" ThisKey="TerritoryId" OtherKey="TerritoryId" IsForeignKey="true" />\r
+      <Column Name="EmployeeID" Member="EmployeeId" Storage="employeeId" Type="System.Int32" DbType="int" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="TerritoryID" Member="TerritoryId" Storage="territoryId" Type="System.String" DbType="varchar(20)" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="northwind.orders" Member="Orders">\r
+    <Type Name="Order">\r
+      <Association Name="order details_ibfk_1" Member="OrderDetails" Type="OrderDetail" ThisKey="OrderId" OtherKey="OrderId" />\r
+      <Association Name="orders_ibfk_1" Member="Customer" Storage="ordersIBFk1" Type="Customer" ThisKey="CustomerId" OtherKey="CustomerId" IsForeignKey="true" />\r
+      <Association Name="orders_ibfk_2" Member="Employee" Storage="ordersIBFk2" Type="Employee" ThisKey="EmployeeId" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="orders_ibfk_3" Member="Shipper" Storage="ordersIBFk3" Type="Shipper" ThisKey="ShipVia" OtherKey="ShipperId" IsForeignKey="true" />\r
+      <Column Name="CustomerID" Member="CustomerId" Storage="customerId" Type="System.String" DbType="varchar(5)" CanBeNull="true" />\r
+      <Column Name="EmployeeID" Member="EmployeeId" Storage="employeeId" Type="System.Int32" DbType="int" CanBeNull="true" />\r
+      <Column Name="Freight" Member="Freight" Storage="freight" Type="System.Decimal" DbType="decimal" CanBeNull="true" />\r
+      <Column Name="OrderDate" Member="OrderDate" Storage="orderDate" Type="System.DateTime" DbType="datetime" CanBeNull="true" />\r
+      <Column Name="OrderID" Member="OrderId" Storage="orderId" Type="System.Int32" DbType="int" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+      <Column Name="RequiredDate" Member="RequiredDate" Storage="requiredDate" Type="System.DateTime" DbType="datetime" CanBeNull="true" />\r
+      <Column Name="ShipAddress" Member="ShipAddress" Storage="shipAddress" Type="System.String" DbType="varchar(60)" CanBeNull="true" />\r
+      <Column Name="ShipCity" Member="ShipCity" Storage="shipCity" Type="System.String" DbType="varchar(15)" CanBeNull="true" />\r
+      <Column Name="ShipCountry" Member="ShipCountry" Storage="shipCountry" Type="System.String" DbType="varchar(15)" CanBeNull="true" />\r
+      <Column Name="ShipName" Member="ShipName" Storage="shipName" Type="System.String" DbType="varchar(40)" CanBeNull="true" />\r
+      <Column Name="ShippedDate" Member="ShippedDate" Storage="shippedDate" Type="System.DateTime" DbType="datetime" CanBeNull="true" />\r
+      <Column Name="ShipPostalCode" Member="ShipPostalCode" Storage="shipPostalCode" Type="System.String" DbType="varchar(10)" CanBeNull="true" />\r
+      <Column Name="ShipRegion" Member="ShipRegion" Storage="shipRegion" Type="System.String" DbType="varchar(15)" CanBeNull="true" />\r
+      <Column Name="ShipVia" Member="ShipVia" Storage="shipVia" Type="System.Int32" DbType="int" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="northwind.order details" Member="OrderDetails">\r
+    <Type Name="OrderDetail">\r
+      <Association Name="order details_ibfk_1" Member="Order" Storage="orderDetailsIBFk1" Type="Order" ThisKey="OrderId" OtherKey="OrderId" IsForeignKey="true" />\r
+      <Association Name="order details_ibfk_2" Member="Product" Storage="orderDetailsIBFk2" Type="Product" ThisKey="ProductId" OtherKey="ProductId" IsForeignKey="true" />\r
+      <Column Name="Discount" Member="Discount" Storage="discount" Type="System.Single" DbType="float" CanBeNull="false" />\r
+      <Column Name="OrderID" Member="OrderId" Storage="orderId" Type="System.Int32" DbType="int" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="ProductID" Member="ProductId" Storage="productId" Type="System.Int32" DbType="int" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="Quantity" Member="Quantity" Storage="quantity" Type="System.Int16" DbType="smallint(6)" CanBeNull="false" />\r
+      <Column Name="UnitPrice" Member="UnitPrice" Storage="unitPrice" Type="System.Decimal" DbType="decimal" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="northwind.products" Member="Products">\r
+    <Type Name="Product">\r
+      <Association Name="order details_ibfk_2" Member="OrderDetails" Type="OrderDetail" ThisKey="ProductId" OtherKey="ProductId" />\r
+      <Association Name="products_ibfk_1" Member="Category" Storage="productsIBFk1" Type="Category" ThisKey="CategoryId" OtherKey="CategoryId" IsForeignKey="true" />\r
+      <Association Name="products_ibfk_2" Member="Supplier" Storage="productsIBFk2" Type="Supplier" ThisKey="SupplierId" OtherKey="SupplierId" IsForeignKey="true" />\r
+      <Column Name="CategoryID" Member="CategoryId" Storage="categoryId" Type="System.Int32" DbType="int" CanBeNull="true" />\r
+      <Column Name="Discontinued" Member="Discontinued" Storage="discontinued" Type="System.Boolean" DbType="bit(1)" CanBeNull="false" />\r
+      <Column Name="ProductID" Member="ProductId" Storage="productId" Type="System.Int32" DbType="int" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+      <Column Name="ProductName" Member="ProductName" Storage="productName" Type="System.String" DbType="varchar(40)" CanBeNull="false" />\r
+      <Column Name="QuantityPerUnit" Member="QuantityPerUnit" Storage="quantityPerUnit" Type="System.String" DbType="varchar(20)" CanBeNull="true" />\r
+      <Column Name="ReorderLevel" Member="ReorderLevel" Storage="reorderLevel" Type="System.Int16" DbType="smallint(6)" CanBeNull="true" />\r
+      <Column Name="SupplierID" Member="SupplierId" Storage="supplierId" Type="System.Int32" DbType="int" CanBeNull="true" />\r
+      <Column Name="UnitPrice" Member="UnitPrice" Storage="unitPrice" Type="System.Decimal" DbType="decimal" CanBeNull="true" />\r
+      <Column Name="UnitsInStock" Member="UnitsInStock" Storage="unitsInStock" Type="System.Int16" DbType="smallint(6)" CanBeNull="true" />\r
+      <Column Name="UnitsOnOrder" Member="UnitsOnOrder" Storage="unitsOnOrder" Type="System.Int16" DbType="smallint(6)" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="northwind.region" Member="Regions">\r
+    <Type Name="Region">\r
+      <Association Name="territories_ibfk_1" Member="Territories" Type="Territory" ThisKey="RegionId" OtherKey="RegionId" />\r
+      <Column Name="RegionDescription" Member="RegionDescription" Storage="regionDescription" Type="System.String" DbType="varchar(50)" CanBeNull="false" />\r
+      <Column Name="RegionID" Member="RegionId" Storage="regionId" Type="System.Int32" DbType="int" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="northwind.shippers" Member="Shippers">\r
+    <Type Name="Shipper">\r
+      <Association Name="orders_ibfk_3" Member="Orders" Type="Order" ThisKey="ShipperId" OtherKey="ShipVia" />\r
+      <Column Name="CompanyName" Member="CompanyName" Storage="companyName" Type="System.String" DbType="varchar(40)" CanBeNull="false" />\r
+      <Column Name="Phone" Member="Phone" Storage="phone" Type="System.String" DbType="varchar(24)" CanBeNull="true" />\r
+      <Column Name="ShipperID" Member="ShipperId" Storage="shipperId" Type="System.Int32" DbType="int" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="northwind.suppliers" Member="Suppliers">\r
+    <Type Name="Supplier">\r
+      <Association Name="products_ibfk_2" Member="Products" Type="Product" ThisKey="SupplierId" OtherKey="SupplierId" />\r
+      <Column Name="Address" Member="Address" Storage="address" Type="System.String" DbType="varchar(60)" CanBeNull="true" />\r
+      <Column Name="City" Member="City" Storage="city" Type="System.String" DbType="varchar(15)" CanBeNull="true" />\r
+      <Column Name="CompanyName" Member="CompanyName" Storage="companyName" Type="System.String" DbType="varchar(40)" CanBeNull="false" />\r
+      <Column Name="ContactName" Member="ContactName" Storage="contactName" Type="System.String" DbType="varchar(30)" CanBeNull="true" />\r
+      <Column Name="ContactTitle" Member="ContactTitle" Storage="contactTitle" Type="System.String" DbType="varchar(30)" CanBeNull="true" />\r
+      <Column Name="Country" Member="Country" Storage="country" Type="System.String" DbType="varchar(15)" CanBeNull="true" />\r
+      <Column Name="Fax" Member="Fax" Storage="fax" Type="System.String" DbType="varchar(24)" CanBeNull="true" />\r
+      <Column Name="Phone" Member="Phone" Storage="phone" Type="System.String" DbType="varchar(24)" CanBeNull="true" />\r
+      <Column Name="PostalCode" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="varchar(10)" CanBeNull="true" />\r
+      <Column Name="Region" Member="Region" Storage="region" Type="System.String" DbType="varchar(15)" CanBeNull="true" />\r
+      <Column Name="SupplierID" Member="SupplierId" Storage="supplierId" Type="System.Int32" DbType="int" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="northwind.territories" Member="Territories">\r
+    <Type Name="Territory">\r
+      <Association Name="employeeterritories_ibfk_2" Member="EmployeeTerritories" Type="EmployeeTerritory" ThisKey="TerritoryId" OtherKey="TerritoryId" />\r
+      <Association Name="territories_ibfk_1" Member="Region" Storage="territoriesIBFk1" Type="Region" ThisKey="RegionId" OtherKey="RegionId" IsForeignKey="true" />\r
+      <Column Name="RegionID" Member="RegionId" Storage="regionId" Type="System.Int32" DbType="int" CanBeNull="false" />\r
+      <Column Name="TerritoryDescription" Member="TerritoryDescription" Storage="territoryDescription" Type="System.String" DbType="varchar(50)" CanBeNull="false" />\r
+      <Column Name="TerritoryID" Member="TerritoryId" Storage="territoryId" Type="System.String" DbType="varchar(20)" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Function Name="northwind.getOrderCount" Method="GetOrderCount" IsComposable="true">\r
+    <Parameter Name="custId" Type="System.String" DbType="VARCHAR(5)" Direction="In" />\r
+    <Return Type="System.Int32" DbType="int(11)" />\r
+  </Function>\r
+  <Function Name="northwind.hello0" Method="Hello0" IsComposable="true">\r
+    <Return Type="System.String" DbType="char(20) CHARSET utf8" />\r
+  </Function>\r
+  <Function Name="northwind.hello1" Method="Hello1" IsComposable="true">\r
+    <Parameter Name="s" Type="System.String" DbType="CHAR(20)" Direction="In" />\r
+    <Return Type="System.String" DbType="char(30) CHARSET utf8" />\r
+  </Function>\r
+  <Function Name="northwind.hello2" Method="Hello2" IsComposable="true">\r
+    <Parameter Name="s" Type="System.String" DbType="CHAR(20)" Direction="In" />\r
+    <Parameter Name="s2" Type="System.Int32" DbType="int" Direction="In" />\r
+    <Return Type="System.String" DbType="char(30) CHARSET utf8" />\r
+  </Function>\r
+  <Function Name="northwind.sp_selOrders" Method="SpSelOrders" IsComposable="false">\r
+    <Parameter Name="s" Type="System.String" DbType="CHAR(20)" Direction="In" />\r
+    <Parameter Name="s2" Type="System.Int32" DbType="int" Direction="Out" />\r
+  </Function>\r
+  <Function Name="northwind.sp_updOrders" Method="SpUpdOrders" IsComposable="false">\r
+    <Parameter Name="custID" Type="System.Int32" DbType="int" Direction="In" />\r
+    <Parameter Name="prodId" Type="System.Int32" DbType="int" Direction="In" />\r
+  </Function>\r
+</Database>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/TestBase.cs b/mcs/class/System.Data.Linq/src/DbLinq.MySql/Test/TestBase.cs
new file mode 100755 (executable)
index 0000000..75ee468
--- /dev/null
@@ -0,0 +1,52 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Data;\r
+\r
+namespace Test_NUnit\r
+{\r
+    public abstract partial class TestBase\r
+    {\r
+        public const StringComparison stringComparisonType = StringComparison.InvariantCulture;\r
+\r
+        public static IDbCommand CreateCommand (string sql, IDbConnection conn)\r
+        {\r
+            return new MySql.Data.MySqlClient.MySqlCommand(sql, (MySql.Data.MySqlClient.MySqlConnection) conn);\r
+        }\r
+\r
+        public static IDbConnection CreateConnection (string connectionString)\r
+        {\r
+            return new MySql.Data.MySqlClient.MySqlConnection(connectionString);\r
+        }\r
+\r
+        public DbLinq.Vendor.IVendor CreateVendor()\r
+        {\r
+            return new DbLinq.MySql.MySqlVendor();\r
+        }\r
+    }\r
+}\r
index aaea329a4476730ae259db0bca5b7264db4d819f..d866d95c50e2cce7345f0a72728bde63da3d39f0 100755 (executable)
@@ -19,7 +19,7 @@
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
     <Optimize>false</Optimize>\r
-    <OutputPath>bin\Debug\</OutputPath>\r
+    <OutputPath>..\..\build.dbg\</OutputPath>\r
     <DefineConstants>DEBUG;TRACE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
@@ -75,4 +75,4 @@
   <Target Name="AfterBuild">\r
   </Target>\r
   -->\r
-</Project>
\ No newline at end of file
+</Project>\r
index 9ed29f02a84803ab746d22a5071d9712f7c4f33a..c6751ef219bad21a42f8a87e7c5a0aca012c3be0 100644 (file)
@@ -1,74 +1,74 @@
-#region MIT license
-// 
-// MIT license
-//
-// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-// 
-#endregion
-using System.Collections.Generic;
-using System.Data;
-using DbLinq.Util;
-using DbLinq.Vendor;
-
-namespace DbLinq.Oracle
-{
-    partial class OracleSchemaLoader
-    {
-        protected virtual IDataTableColumn ReadColumn(IDataReader rdr)
-        {
-            var column = new DataTableColumn();
-            int field = 0;
-            column.TableSchema = rdr.GetString(field++);
-            column.TableName = rdr.GetString(field++);
-            column.ColumnName = rdr.GetString(field++);
-            column.Type = rdr.GetString(field++);
-            column.Length = rdr.GetAsNullableNumeric<long>(field++);
-            column.Precision = rdr.GetAsNullableNumeric<int>(field++);
-            column.Scale = rdr.GetAsNullableNumeric<int>(field++);
-            string nullableStr = rdr.GetString(field++);
-            column.Nullable = nullableStr == "Y";
-            column.FullType = column.Type;
-            return column;
-        }
-
-        protected override IList<IDataTableColumn> ReadColumns(IDbConnection connectionString, string databaseName)
-        {
-            const string sql = @"
-SELECT owner, table_name, column_name, 
-  case when data_type like 'TIMESTAMP%' then 'TIMESTAMP'
-       when data_type like 'INTERVAL%' then 'INTERVAL'
-  else data_type
-  end data_type , 
-    data_length, data_precision, data_scale, nullable
-FROM all_tab_columns
-WHERE table_name NOT LIKE '%$%' 
-    AND table_name NOT LIKE 'LOGMNR%' 
-    AND table_name NOT LIKE 'MVIEW%' 
-    AND table_name NOT IN ('SQLPLUS_PRODUCT_PROFILE','HELP', 'PRODUCT_PRIVS')
-    -- skip nested table columns
-    AND data_type_owner is null
-    AND lower(owner) = :owner
-ORDER BY table_name, column_id";
-
-            return DataCommand.Find<IDataTableColumn>(connectionString, sql, ":owner", databaseName.ToLower(), ReadColumn);
-        }
-    }
-}
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+using System.Collections.Generic;\r
+using System.Data;\r
+using DbLinq.Util;\r
+using DbLinq.Vendor;\r
+\r
+namespace DbLinq.Oracle\r
+{\r
+    partial class OracleSchemaLoader\r
+    {\r
+        protected virtual IDataTableColumn ReadColumn(IDataReader rdr)\r
+        {\r
+            var column = new DataTableColumn();\r
+            int field = 0;\r
+            column.TableSchema = rdr.GetString(field++);\r
+            column.TableName = rdr.GetString(field++);\r
+            column.ColumnName = rdr.GetString(field++);\r
+            column.Type = rdr.GetString(field++);\r
+            column.Length = rdr.GetAsNullableNumeric<long>(field++);\r
+            column.Precision = rdr.GetAsNullableNumeric<int>(field++);\r
+            column.Scale = rdr.GetAsNullableNumeric<int>(field++);\r
+            string nullableStr = rdr.GetString(field++);\r
+            column.Nullable = nullableStr == "Y";\r
+            column.FullType = column.Type;\r
+            return column;\r
+        }\r
+\r
+        protected override IList<IDataTableColumn> ReadColumns(IDbConnection connectionString, string databaseName)\r
+        {\r
+            const string sql = @"\r
+SELECT owner, table_name, column_name, \r
+  case when data_type like 'TIMESTAMP%' then 'TIMESTAMP'\r
+       when data_type like 'INTERVAL%' then 'INTERVAL'\r
+  else data_type\r
+  end data_type , \r
+    data_length, data_precision, data_scale, nullable\r
+FROM all_tab_columns\r
+WHERE table_name NOT LIKE '%$%' \r
+    AND table_name NOT LIKE 'LOGMNR%' \r
+    AND table_name NOT LIKE 'MVIEW%' \r
+    AND table_name NOT IN ('SQLPLUS_PRODUCT_PROFILE','HELP', 'PRODUCT_PRIVS')\r
+    -- skip nested table columns\r
+    AND data_type_owner is null\r
+    AND lower(owner) = :owner\r
+ORDER BY table_name, column_id";\r
+\r
+            return DataCommand.Find<IDataTableColumn>(connectionString, sql, ":owner", databaseName.ToLower(), ReadColumn);\r
+        }\r
+    }\r
+}\r
index 4c5ec3d979cd60101d27eb07299f66ee83cf29e6..d941456f87e9b3e1808438361649de03a28e6a01 100644 (file)
-#region MIT license
-// 
-// MIT license
-//
-// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-// 
-#endregion
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Text;
-using System.Text.RegularExpressions;
-using DbLinq.Util;
-
-namespace DbLinq.Oracle
-{
-    partial class OracleSchemaLoader
-    {
-        protected class DataConstraint
-        {
-            public string TableSchema;
-            public string ConstraintName;
-            public string TableName;
-            public string ColumnName;
-            public string ConstraintType;
-            public string ReverseConstraintName;
-            public string Expression;
-
-            public override string ToString()
-            {
-                return "User_Constraint  " + TableName + "." + ColumnName;
-            }
-        }
-
-        protected virtual DataConstraint ReadConstraint(IDataReader rdr)
-        {
-            var constraint = new DataConstraint();
-            int field = 0;
-            constraint.TableSchema = rdr.GetAsString(field++);
-            constraint.ConstraintName = rdr.GetAsString(field++);
-            constraint.TableName = rdr.GetAsString(field++);
-            constraint.ColumnName = rdr.GetAsString(field++);
-            constraint.ConstraintType = rdr.GetAsString(field++);
-            constraint.ReverseConstraintName = rdr.GetAsString(field++);
-            return constraint;
-        }
-
-        private static Regex TriggerMatch1 = new Regex(@".*SELECT\s+(?<exp>\S+.*)\s+INTO\s+\:new.(?<col>\S+)\s+FROM\s+DUAL.*",
-            RegexOptions.Compiled | RegexOptions.IgnoreCase);
-
-        protected bool MatchTrigger(Regex regex, string fullText, out string expression, out string column)
-        {
-            var match = regex.Match(fullText);
-            if (match.Success)
-            {
-                expression = match.Groups["exp"].Value;
-                column = match.Groups["col"].Value;
-                return true;
-            }
-            expression = null;
-            column = null;
-            return false;
-        }
-
-        protected virtual DataConstraint ReadTrigger(IDataReader rdr)
-        {
-            var constraint = new DataConstraint();
-            int field = 0;
-            constraint.ConstraintName = rdr.GetAsString(field++);
-            constraint.TableSchema = rdr.GetAsString(field++);
-            constraint.TableName = rdr.GetAsString(field++);
-            constraint.ConstraintType = "T";
-            string body = rdr.GetAsString(field++);
-            //BEGIN
-            //   IF (:new."EmployeeID" IS NULL) THEN
-            //        SELECT Employees_seq.NEXTVAL INTO :new."EmployeeID" FROM DUAL;
-            //   END IF;
-            //END;
-            string expression, column;
-            if (MatchTrigger(TriggerMatch1, body, out expression, out column))
-            {
-                constraint.ColumnName = column.Trim('"');
-                constraint.Expression = expression;
-            }
-            return constraint;
-        }
-
-        protected virtual List<DataConstraint> ReadConstraints(IDbConnection conn, string db)
-        {
-            var constraints = new List<DataConstraint>();
-
-            string sql = @"
-SELECT UCC.owner, UCC.constraint_name, UCC.table_name, UCC.column_name, UC.constraint_type, UC.R_constraint_name
-FROM all_cons_columns UCC, all_constraints UC
-WHERE UCC.constraint_name=UC.constraint_name
-AND UCC.table_name=UC.table_name
-AND UCC.TABLE_NAME NOT LIKE '%$%' AND UCC.TABLE_NAME NOT LIKE 'LOGMNR%' AND UCC.TABLE_NAME NOT IN ('HELP','SQLPLUS_PRODUCT_PROFILE')
-AND UC.CONSTRAINT_TYPE!='C'
-and lower(UCC.owner) = :owner";
-
-            constraints.AddRange(DataCommand.Find<DataConstraint>(conn, sql, ":owner", db.ToLower(), ReadConstraint));
-
-            string sql2 =
-                @"
-select t.TRIGGER_NAME, t.TABLE_OWNER, t.TABLE_NAME, t.TRIGGER_BODY from ALL_TRIGGERS t
-where t.status = 'ENABLED'
- and t.TRIGGERING_EVENT = 'INSERT'
- and t.TRIGGER_TYPE='BEFORE EACH ROW'
- and lower(t.owner) = :owner";
-
-            constraints.AddRange(DataCommand.Find<DataConstraint>(conn, sql2, ":owner", db.ToLower(), ReadTrigger));
-            return constraints;
-        }
-    }
-}
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Data;\r
+using System.Text;\r
+using System.Text.RegularExpressions;\r
+using DbLinq.Util;\r
+\r
+namespace DbLinq.Oracle\r
+{\r
+    partial class OracleSchemaLoader\r
+    {\r
+        protected class DataConstraint\r
+        {\r
+            public string TableSchema;\r
+            public string ConstraintName;\r
+            public string TableName;\r
+            public string ColumnName;\r
+            public string ConstraintType;\r
+            public string ReverseConstraintName;\r
+            public string Expression;\r
+\r
+            public override string ToString()\r
+            {\r
+                return "User_Constraint  " + TableName + "." + ColumnName;\r
+            }\r
+        }\r
+\r
+        protected virtual DataConstraint ReadConstraint(IDataReader rdr)\r
+        {\r
+            var constraint = new DataConstraint();\r
+            int field = 0;\r
+            constraint.TableSchema = rdr.GetAsString(field++);\r
+            constraint.ConstraintName = rdr.GetAsString(field++);\r
+            constraint.TableName = rdr.GetAsString(field++);\r
+            constraint.ColumnName = rdr.GetAsString(field++);\r
+            constraint.ConstraintType = rdr.GetAsString(field++);\r
+            constraint.ReverseConstraintName = rdr.GetAsString(field++);\r
+            return constraint;\r
+        }\r
+\r
+        private static Regex TriggerMatch1 = new Regex(@".*SELECT\s+(?<exp>\S+.*)\s+INTO\s+\:new.(?<col>\S+)\s+FROM\s+DUAL.*",\r
+            RegexOptions.Compiled | RegexOptions.IgnoreCase);\r
+\r
+        protected bool MatchTrigger(Regex regex, string fullText, out string expression, out string column)\r
+        {\r
+            var match = regex.Match(fullText);\r
+            if (match.Success)\r
+            {\r
+                expression = match.Groups["exp"].Value;\r
+                column = match.Groups["col"].Value;\r
+                return true;\r
+            }\r
+            expression = null;\r
+            column = null;\r
+            return false;\r
+        }\r
+\r
+        protected virtual DataConstraint ReadTrigger(IDataReader rdr)\r
+        {\r
+            var constraint = new DataConstraint();\r
+            int field = 0;\r
+            constraint.ConstraintName = rdr.GetAsString(field++);\r
+            constraint.TableSchema = rdr.GetAsString(field++);\r
+            constraint.TableName = rdr.GetAsString(field++);\r
+            constraint.ConstraintType = "T";\r
+            string body = rdr.GetAsString(field++);\r
+            //BEGIN\r
+            //   IF (:new."EmployeeID" IS NULL) THEN\r
+            //        SELECT Employees_seq.NEXTVAL INTO :new."EmployeeID" FROM DUAL;\r
+            //   END IF;\r
+            //END;\r
+            string expression, column;\r
+            if (MatchTrigger(TriggerMatch1, body, out expression, out column))\r
+            {\r
+                constraint.ColumnName = column.Trim('"');\r
+                constraint.Expression = expression;\r
+            }\r
+            return constraint;\r
+        }\r
+\r
+        protected virtual List<DataConstraint> ReadConstraints(IDbConnection conn, string db)\r
+        {\r
+            var constraints = new List<DataConstraint>();\r
+\r
+            string sql = @"\r
+SELECT UCC.owner, UCC.constraint_name, UCC.table_name, UCC.column_name, UC.constraint_type, UC.R_constraint_name\r
+FROM all_cons_columns UCC, all_constraints UC\r
+WHERE UCC.constraint_name=UC.constraint_name\r
+AND UCC.table_name=UC.table_name\r
+AND UCC.TABLE_NAME NOT LIKE '%$%' AND UCC.TABLE_NAME NOT LIKE 'LOGMNR%' AND UCC.TABLE_NAME NOT IN ('HELP','SQLPLUS_PRODUCT_PROFILE')\r
+AND UC.CONSTRAINT_TYPE!='C'\r
+and lower(UCC.owner) = :owner";\r
+\r
+            constraints.AddRange(DataCommand.Find<DataConstraint>(conn, sql, ":owner", db.ToLower(), ReadConstraint));\r
+\r
+            string sql2 =\r
+                @"\r
+select t.TRIGGER_NAME, t.TABLE_OWNER, t.TABLE_NAME, t.TRIGGER_BODY from ALL_TRIGGERS t\r
+where t.status = 'ENABLED'\r
+ and t.TRIGGERING_EVENT = 'INSERT'\r
+ and t.TRIGGER_TYPE='BEFORE EACH ROW'\r
+ and lower(t.owner) = :owner";\r
+\r
+            constraints.AddRange(DataCommand.Find<DataConstraint>(conn, sql2, ":owner", db.ToLower(), ReadTrigger));\r
+            return constraints;\r
+        }\r
+    }\r
+}\r
index 701ff656b9b0486f2adb9ff269e6fdf79f70f181..b5fbcfde2f4d800733981197aaa9b79add784b49 100644 (file)
@@ -1,54 +1,54 @@
-#region MIT license
-// 
-// MIT license
-//
-// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-// 
-#endregion
-using System.Collections.Generic;
-using System.Data;
-using DbLinq.Util;
-using DbLinq.Vendor;
-
-namespace DbLinq.Oracle
-{
-    public partial class OracleSchemaLoader
-    {
-        public override IList<IDataName> ReadTables(IDbConnection connectionString, string databaseName)
-        {
-            // note: the ReadDataNameAndSchema relies on information order
-            const string sql = @"
-SELECT table_name, owner
-FROM all_tables 
-WHERE table_name NOT LIKE '%$%' 
-AND table_name NOT LIKE 'LOGMNR%' 
-AND table_name NOT IN ('SQLPLUS_PRODUCT_PROFILE','HELP')
-and lower(owner) = :owner
-UNION
-SELECT view_name, owner
-FROM all_views
-WHERE lower(owner) = :owner
-";
-
-            return DataCommand.Find<IDataName>(connectionString, sql, ":owner", databaseName.ToLower(), ReadDataNameAndSchema);
-        }
-    }
-}
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+using System.Collections.Generic;\r
+using System.Data;\r
+using DbLinq.Util;\r
+using DbLinq.Vendor;\r
+\r
+namespace DbLinq.Oracle\r
+{\r
+    public partial class OracleSchemaLoader\r
+    {\r
+        public override IList<IDataName> ReadTables(IDbConnection connectionString, string databaseName)\r
+        {\r
+            // note: the ReadDataNameAndSchema relies on information order\r
+            const string sql = @"\r
+SELECT table_name, owner\r
+FROM all_tables \r
+WHERE table_name NOT LIKE '%$%' \r
+AND table_name NOT LIKE 'LOGMNR%' \r
+AND table_name NOT IN ('SQLPLUS_PRODUCT_PROFILE','HELP')\r
+and lower(owner) = :owner\r
+UNION\r
+SELECT view_name, owner\r
+FROM all_views\r
+WHERE lower(owner) = :owner\r
+";\r
+\r
+            return DataCommand.Find<IDataName>(connectionString, sql, ":owner", databaseName.ToLower(), ReadDataNameAndSchema);\r
+        }\r
+    }\r
+}\r
index 3d58572e0ced77b63c1c3b93be695f0e62a870fb..df86007786590e38053eaf63437f1e2ad48e4c3d 100644 (file)
-#region MIT license
-// 
-// MIT license
-//
-// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-// 
-#endregion
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Linq;
-using DbLinq.Schema;
-using DbLinq.Schema.Dbml;
-using DbLinq.Util;
-using DbLinq.Vendor;
-using DbLinq.Vendor.Implementation;
-
-namespace DbLinq.Oracle
-{
-    partial class OracleSchemaLoader : SchemaLoader
-    {
-        private readonly Vendor.IVendor vendor = new OracleVendor();
-        public override IVendor Vendor { get { return vendor; } }
-
-        public override System.Type DataContextType { get { return typeof(OracleDataContext); } }
-
-        protected override void LoadConstraints(Database schema, SchemaName schemaName, IDbConnection conn, NameFormat nameFormat, Names names)
-        {
-            var constraints = ReadConstraints(conn, schemaName.DbName);
-
-            foreach (DataConstraint constraint in constraints)
-            {
-                //find my table:
-                string constraintFullDbName = GetFullDbName(constraint.TableName, constraint.TableSchema);
-                DbLinq.Schema.Dbml.Table table = schema.Tables.FirstOrDefault(t => constraintFullDbName == t.Name);
-                if (table == null)
-                {
-                    WriteErrorLine("ERROR L100: Table '" + constraint.TableName + "' not found for column " + constraint.ColumnName);
-                    continue;
-                }
-
-                //if (table.Name.StartsWith("E"))
-                //    Logger.Write("---Dbg");
-
-                if (constraint.ConstraintType == "P")
-                {
-                    //A) add primary key
-                    DbLinq.Schema.Dbml.Column pkColumn = table.Type.Columns.Where(c => c.Name == constraint.ColumnName).First();
-                    pkColumn.IsPrimaryKey = true;
-                }
-                else if (constraint.ConstraintType == "R")
-                {
-                    //if not PRIMARY, it's a foreign key. (constraint_type=="R")
-                    //both parent and child table get an [Association]
-                    DataConstraint referencedConstraint = constraints.FirstOrDefault(c => c.ConstraintName == constraint.ReverseConstraintName);
-                    if (constraint.ReverseConstraintName == null || referencedConstraint == null)
-                    {
-                        WriteErrorLine("ERROR L127: given R_contraint_name='" + constraint.ReverseConstraintName + "', unable to find parent constraint");
-                        continue;
-                    }
-
-                    LoadForeignKey(schema, table, constraint.ColumnName, constraint.TableName, constraint.TableSchema,
-                                   referencedConstraint.ColumnName, referencedConstraint.TableName,
-                                   referencedConstraint.TableSchema,
-                                   constraint.ConstraintName, nameFormat, names);
-
-                }
-                // custom type, this is a trigger
-                else if (constraint.ConstraintType == "T" && constraint.ColumnName != null)
-                {
-                    var column = table.Type.Columns.Where(c => c.Name == constraint.ColumnName).First();
-                    column.Expression = constraint.Expression;
-                    column.IsDbGenerated = true;
-                }
-            }
-
-            //GuessSequencePopulatedFields(schema);
-        }
-
-        /// <summary>
-        /// guess which fields are populated by sequences.
-        /// Mark them with [AutoGenId].
-        /// </summary>
-        public static void GuessSequencePopulatedFields(DbLinq.Schema.Dbml.Database schema)
-        {
-            if (schema == null)
-                return;
-            foreach (DbLinq.Schema.Dbml.Table tbl in schema.Tables)
-            {
-                var q = from col in tbl.Type.Columns
-                        where col.IsPrimaryKey
-                        select col;
-                List<DbLinq.Schema.Dbml.Column> cols = q.ToList();
-                bool canBeFromSequence = cols.Count == 1
-                    && (!cols[0].CanBeNull)
-                    && (cols[0].DbType == "NUMBER" || cols[0].DbType == "INTEGER");
-                if (canBeFromSequence)
-                {
-                    //TODO: query sequences, store sequence name.
-                    //in the meantime, assume naming convention similar to 'Products_seq'
-                    cols[0].IsDbGenerated = true;
-                }
-            }
-        }
-    }
-}
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Data;\r
+using System.Linq;\r
+using DbLinq.Schema;\r
+using DbLinq.Schema.Dbml;\r
+using DbLinq.Util;\r
+using DbLinq.Vendor;\r
+using DbLinq.Vendor.Implementation;\r
+\r
+namespace DbLinq.Oracle\r
+{\r
+    partial class OracleSchemaLoader : SchemaLoader\r
+    {\r
+        private readonly Vendor.IVendor vendor = new OracleVendor();\r
+        public override IVendor Vendor { get { return vendor; } }\r
+\r
+        public override System.Type DataContextType { get { return typeof(OracleDataContext); } }\r
+\r
+        protected override void LoadConstraints(Database schema, SchemaName schemaName, IDbConnection conn, NameFormat nameFormat, Names names)\r
+        {\r
+            var constraints = ReadConstraints(conn, schemaName.DbName);\r
+\r
+            foreach (DataConstraint constraint in constraints)\r
+            {\r
+                //find my table:\r
+                string constraintFullDbName = GetFullDbName(constraint.TableName, constraint.TableSchema);\r
+                DbLinq.Schema.Dbml.Table table = schema.Tables.FirstOrDefault(t => constraintFullDbName == t.Name);\r
+                if (table == null)\r
+                {\r
+                    WriteErrorLine("ERROR L100: Table '" + constraint.TableName + "' not found for column " + constraint.ColumnName);\r
+                    continue;\r
+                }\r
+\r
+                //if (table.Name.StartsWith("E"))\r
+                //    Logger.Write("---Dbg");\r
+\r
+                if (constraint.ConstraintType == "P")\r
+                {\r
+                    //A) add primary key\r
+                    DbLinq.Schema.Dbml.Column pkColumn = table.Type.Columns.Where(c => c.Name == constraint.ColumnName).First();\r
+                    pkColumn.IsPrimaryKey = true;\r
+                }\r
+                else if (constraint.ConstraintType == "R")\r
+                {\r
+                    //if not PRIMARY, it's a foreign key. (constraint_type=="R")\r
+                    //both parent and child table get an [Association]\r
+                    DataConstraint referencedConstraint = constraints.FirstOrDefault(c => c.ConstraintName == constraint.ReverseConstraintName);\r
+                    if (constraint.ReverseConstraintName == null || referencedConstraint == null)\r
+                    {\r
+                        WriteErrorLine("ERROR L127: given R_contraint_name='" + constraint.ReverseConstraintName + "', unable to find parent constraint");\r
+                        continue;\r
+                    }\r
+\r
+                    LoadForeignKey(schema, table, constraint.ColumnName, constraint.TableName, constraint.TableSchema,\r
+                                   referencedConstraint.ColumnName, referencedConstraint.TableName,\r
+                                   referencedConstraint.TableSchema,\r
+                                   constraint.ConstraintName, nameFormat, names);\r
+\r
+                }\r
+                // custom type, this is a trigger\r
+                else if (constraint.ConstraintType == "T" && constraint.ColumnName != null)\r
+                {\r
+                    var column = table.Type.Columns.Where(c => c.Name == constraint.ColumnName).First();\r
+                    column.Expression = constraint.Expression;\r
+                    column.IsDbGenerated = true;\r
+                }\r
+            }\r
+\r
+            //GuessSequencePopulatedFields(schema);\r
+        }\r
+\r
+        /// <summary>\r
+        /// guess which fields are populated by sequences.\r
+        /// Mark them with [AutoGenId].\r
+        /// </summary>\r
+        public static void GuessSequencePopulatedFields(DbLinq.Schema.Dbml.Database schema)\r
+        {\r
+            if (schema == null)\r
+                return;\r
+            foreach (DbLinq.Schema.Dbml.Table tbl in schema.Tables)\r
+            {\r
+                var q = from col in tbl.Type.Columns\r
+                        where col.IsPrimaryKey\r
+                        select col;\r
+                List<DbLinq.Schema.Dbml.Column> cols = q.ToList();\r
+                bool canBeFromSequence = cols.Count == 1\r
+                    && (!cols[0].CanBeNull)\r
+                    && (cols[0].DbType == "NUMBER" || cols[0].DbType == "INTEGER");\r
+                if (canBeFromSequence)\r
+                {\r
+                    //TODO: query sequences, store sequence name.\r
+                    //in the meantime, assume naming convention similar to 'Products_seq'\r
+                    cols[0].IsDbGenerated = true;\r
+                }\r
+            }\r
+        }\r
+    }\r
+}\r
index 83fbbc1dc9de9010793f0beedcc8dae4d684d8c1..ba308d5c798907a075d7e5b204dbbc4631f797fc 100644 (file)
@@ -86,14 +86,5 @@ namespace DbLinq.Oracle
 \r
         protected override string ConnectionStringDatabase { get { return null; } }\r
         protected override string ConnectionStringServer { get { return "data source"; } }\r
-\r
-        override protected TypeToLoadData GetProviderTypeName()\r
-        {\r
-            return new TypeToLoadData\r
-            {\r
-                assemblyName = "Oracle.DataAccess.DLL",\r
-                className = "OracleConnection",\r
-            };\r
-        }\r
     }\r
 }\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/DbLinq.Oracle_test.csproj b/mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/DbLinq.Oracle_test.csproj
new file mode 100644 (file)
index 0000000..4a6c3d0
--- /dev/null
@@ -0,0 +1,216 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{858BAFF7-533F-4DBB-9C9B-57FCDE4DB7CE}</ProjectGuid>\r
+    <OutputType>WinExe</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>Test_NUnit</RootNamespace>\r
+    <AssemblyName>DbLinq.Oracle_test</AssemblyName>\r
+    <StartupObject>\r
+    </StartupObject>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <UpgradeBackupLocation>\r
+    </UpgradeBackupLocation>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;ORACLE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>1</WarningLevel>\r
+    <NoWarn>\r
+    </NoWarn>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;ORACLE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System.Data.OracleClient" />\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Security" />\r
+    <Reference Include="System.XML" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\..\..\examples\DbLinq.Ora.Example\nwind\Northwind.cs">\r
+      <Link>nwind\Northwind.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\lib\DynamicLinq.cs">\r
+      <Link>lib\DynamicLinq.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Attach.cs">\r
+      <Link>Providers\Attach.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\CompositePK_Test.cs">\r
+      <Link>Providers\CompositePK_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DynamicLinqTest.cs">\r
+      <Link>Providers\DynamicLinqTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteCommand_Test.cs">\r
+      <Link>Providers\ExecuteCommand_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteQuery_Test.cs">\r
+      <Link>Providers\ExecuteQuery_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Advanced.cs">\r
+      <Link>Providers\Linq_101_Samples\Advanced.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Conversion_Operators.cs">\r
+      <Link>Providers\Linq_101_Samples\Conversion_Operators.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs">\r
+      <Link>Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\ExsistIn_Any_All.cs">\r
+      <Link>Providers\Linq_101_Samples\ExsistIn_Any_All.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\GroupBy_Having.cs">\r
+      <Link>Providers\Linq_101_Samples\GroupBy_Having.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Inheritance.cs">\r
+      <Link>Providers\Linq_101_Samples\Inheritance.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Insert_Update_Delete.cs">\r
+      <Link>Providers\Linq_101_Samples\Insert_Update_Delete.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Join.cs">\r
+      <Link>Providers\Linq_101_Samples\Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs">\r
+      <Link>Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Null.cs">\r
+      <Link>Providers\Linq_101_Samples\Null.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object Loading.cs">\r
+      <Link>Providers\Linq_101_Samples\Object Loading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object_Identity.cs">\r
+      <Link>Providers\Linq_101_Samples\Object_Identity.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\OrderBy.cs">\r
+      <Link>Providers\Linq_101_Samples\OrderBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Paging.cs">\r
+      <Link>Providers\Linq_101_Samples\Paging.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Select_Distinct.cs">\r
+      <Link>Providers\Linq_101_Samples\Select_Distinct.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\String_Date_functions.cs">\r
+      <Link>Providers\Linq_101_Samples\String_Date_functions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Top_Bottom.cs">\r
+      <Link>Providers\Linq_101_Samples\Top_Bottom.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs">\r
+      <Link>Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Views.cs">\r
+      <Link>Providers\Linq_101_Samples\Views.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Where.cs">\r
+      <Link>Providers\Linq_101_Samples\Where.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Program3Ora.cs">\r
+      <Link>Providers\Program3Ora.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_AnyCountFirst.cs">\r
+      <Link>Providers\ReadTests_AnyCountFirst.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Conversions.cs">\r
+      <Link>Providers\ReadTests_Conversions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_DateTimeFunctions.cs">\r
+      <Link>Providers\ReadTests_DateTimeFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_EntitySet.cs">\r
+      <Link>Providers\ReadTests_EntitySet.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Join.cs">\r
+      <Link>Providers\ReadTests_Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Maths.cs">\r
+      <Link>Providers\ReadTests_Maths.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_ReferenceLoading.cs">\r
+      <Link>Providers\ReadTests_ReferenceLoading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_StringFunctions.cs">\r
+      <Link>Providers\ReadTests_StringFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Complex.cs">\r
+      <Link>Providers\ReadTest_Complex.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest.cs">\r
+      <Link>Providers\ReadTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Properties\AssemblyInfo.cs">\r
+      <Link>Providers\Properties\AssemblyInfo.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_GroupBy.cs">\r
+      <Link>Providers\ReadTest_GroupBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Operands.cs">\r
+      <Link>Providers\ReadTest_Operands.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Subquery.cs">\r
+      <Link>Providers\ReadTest_Subquery.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Table.cs">\r
+      <Link>Providers\Table.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\TestBase.cs">\r
+      <Link>Providers\TestBase.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Transactions.cs">\r
+      <Link>Providers\Transactions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest.cs">\r
+      <Link>Providers\WriteTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="TestBase.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\DbLinq.Oracle.csproj">\r
+      <Project>{D9DE72A2-D885-4C54-A89E-302E6829101C}</Project>\r
+      <Name>DbLinq.Oracle</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\..\DbLinq\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq\Test\Providers\App.config">\r
+      <Link>Providers\App.config</Link>\r
+    </None>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Content Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\101_readme.htm">\r
+      <Link>Providers\Linq_101_Samples\101_readme.htm</Link>\r
+    </Content>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/DbLinq.Oracle_test_odp.csproj b/mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/DbLinq.Oracle_test_odp.csproj
new file mode 100644 (file)
index 0000000..eda3c58
--- /dev/null
@@ -0,0 +1,216 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{858BAFE8-533F-4DBB-9C9B-57FCDE4DB7CE}</ProjectGuid>\r
+    <OutputType>WinExe</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>Test_NUnit</RootNamespace>\r
+    <AssemblyName>DbLinq.Oracle_test_odp</AssemblyName>\r
+    <StartupObject>\r
+    </StartupObject>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <UpgradeBackupLocation>\r
+    </UpgradeBackupLocation>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;ORACLE;ODP</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>1</WarningLevel>\r
+    <NoWarn>\r
+    </NoWarn>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;ORACLE;ODP</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="Oracle.DataAccess, Version=10.1.0.400, Culture=neutral, PublicKeyToken=89b483f429c47342">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\Oracle.DataAccess.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Security" />\r
+    <Reference Include="System.XML" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\..\..\examples\DbLinq.Ora.Example\nwind\Northwind.cs">\r
+      <Link>nwind\Northwind.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\lib\DynamicLinq.cs">\r
+      <Link>lib\DynamicLinq.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Attach.cs">\r
+      <Link>Providers\Attach.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\CompositePK_Test.cs">\r
+      <Link>Providers\CompositePK_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DynamicLinqTest.cs">\r
+      <Link>Providers\DynamicLinqTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteCommand_Test.cs">\r
+      <Link>Providers\ExecuteCommand_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteQuery_Test.cs">\r
+      <Link>Providers\ExecuteQuery_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Advanced.cs">\r
+      <Link>Providers\Linq_101_Samples\Advanced.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Conversion_Operators.cs">\r
+      <Link>Providers\Linq_101_Samples\Conversion_Operators.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs">\r
+      <Link>Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\ExsistIn_Any_All.cs">\r
+      <Link>Providers\Linq_101_Samples\ExsistIn_Any_All.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\GroupBy_Having.cs">\r
+      <Link>Providers\Linq_101_Samples\GroupBy_Having.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Inheritance.cs">\r
+      <Link>Providers\Linq_101_Samples\Inheritance.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Insert_Update_Delete.cs">\r
+      <Link>Providers\Linq_101_Samples\Insert_Update_Delete.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Join.cs">\r
+      <Link>Providers\Linq_101_Samples\Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs">\r
+      <Link>Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Null.cs">\r
+      <Link>Providers\Linq_101_Samples\Null.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object Loading.cs">\r
+      <Link>Providers\Linq_101_Samples\Object Loading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object_Identity.cs">\r
+      <Link>Providers\Linq_101_Samples\Object_Identity.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\OrderBy.cs">\r
+      <Link>Providers\Linq_101_Samples\OrderBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Paging.cs">\r
+      <Link>Providers\Linq_101_Samples\Paging.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Select_Distinct.cs">\r
+      <Link>Providers\Linq_101_Samples\Select_Distinct.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\String_Date_functions.cs">\r
+      <Link>Providers\Linq_101_Samples\String_Date_functions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Top_Bottom.cs">\r
+      <Link>Providers\Linq_101_Samples\Top_Bottom.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs">\r
+      <Link>Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Views.cs">\r
+      <Link>Providers\Linq_101_Samples\Views.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Where.cs">\r
+      <Link>Providers\Linq_101_Samples\Where.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Program3Ora.cs">\r
+      <Link>Providers\Program3Ora.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_AnyCountFirst.cs">\r
+      <Link>Providers\ReadTests_AnyCountFirst.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_DateTimeFunctions.cs">\r
+      <Link>Providers\ReadTests_DateTimeFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_EntitySet.cs">\r
+      <Link>Providers\ReadTests_EntitySet.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Join.cs">\r
+      <Link>Providers\ReadTests_Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Maths.cs">\r
+      <Link>Providers\ReadTests_Maths.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_ReferenceLoading.cs">\r
+      <Link>Providers\ReadTests_ReferenceLoading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_StringFunctions.cs">\r
+      <Link>Providers\ReadTests_StringFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Complex.cs">\r
+      <Link>Providers\ReadTest_Complex.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest.cs">\r
+      <Link>Providers\ReadTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Properties\AssemblyInfo.cs">\r
+      <Link>Providers\Properties\AssemblyInfo.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_GroupBy.cs">\r
+      <Link>Providers\ReadTest_GroupBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Operands.cs">\r
+      <Link>Providers\ReadTest_Operands.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Subquery.cs">\r
+      <Link>Providers\ReadTest_Subquery.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Table.cs">\r
+      <Link>Providers\Table.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\TestBase.cs">\r
+      <Link>Providers\TestBase.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Transactions.cs">\r
+      <Link>Providers\Transactions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest.cs">\r
+      <Link>Providers\WriteTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="TestBase_odp.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\DbLinq.Oracle.csproj">\r
+      <Project>{D9DE72A2-D885-4C54-A89E-302E6829101C}</Project>\r
+      <Name>DbLinq.Oracle</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\..\DbLinq\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq\Test\Providers\App.config">\r
+      <Link>Providers\App.config</Link>\r
+    </None>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Content Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\101_readme.htm">\r
+      <Link>Providers\Linq_101_Samples\101_readme.htm</Link>\r
+    </Content>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/NorthwindOraODP.dbml b/mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/NorthwindOraODP.dbml
new file mode 100644 (file)
index 0000000..c29d51e
--- /dev/null
@@ -0,0 +1,154 @@
+<?xml version="1.0"?>\r
+<Database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Northwind" Class="Northwind" Provider="OracleODP" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">\r
+  <Table Name="NORTHWIND.CASETEST" Member="CaseTests">\r
+    <Type Name="CaseTest">\r
+      <Column Name="NOCASE" Member="NoCase" Storage="noCase" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="Number1" Member="Number1" Storage="number1" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="Number2" Member="Number2" Storage="number2" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="value0" Member="Value0" Storage="value0" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="WithCase" Member="WithCase" Storage="withCase" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.CaseTest2" Member="CaseTest2">\r
+    <Type Name="CaseTest2">\r
+      <Column Name="SimpleColumn" Member="SimpleColumn" Storage="simpleColumn" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.CATEGORIES" Member="Categories">\r
+    <Type Name="Category">\r
+      <Association Name="SYS_C004131" Member="Products" Type="Product" ThisKey="CategoryId" OtherKey="CategoryId" />\r
+      <Column Name="CATEGORYID" Member="CategoryId" Storage="categoryId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+      <Column Name="CATEGORYNAME" Member="CategoryName" Storage="categoryName" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="DESCRIPTION" Member="Description" Storage="description" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="PICTURE" Member="Picture" Storage="picture" Type="System.Byte[]" DbType="BLOB" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.CUSTOMERS" Member="Customers">\r
+    <Type Name="Customer">\r
+      <Association Name="SYS_C004148" Member="Orders" Type="Order" ThisKey="CustomerId" OtherKey="CustomerId" />\r
+      <Column Name="ADDRESS" Member="Address" Storage="address" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="CITY" Member="City" Storage="city" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="COMPANYNAME" Member="CompanyName" Storage="companyName" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="CONTACTNAME" Member="ContactName" Storage="contactName" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="CONTACTTITLE" Member="ContactTitle" Storage="contactTitle" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="COUNTRY" Member="Country" Storage="country" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="CUSTOMERID" Member="CustomerId" Storage="customerId" Type="System.String" DbType="VARCHAR2" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="FAX" Member="Fax" Storage="fax" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="PHONE" Member="Phone" Storage="phone" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="POSTALCODE" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="REGION" Member="Region" Storage="region" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.EMPLOYEES" Member="Employees">\r
+    <Type Name="Employee">\r
+      <Association Name="SYS_C004140" Member="ParentEmployee" Storage="sysC004140" Type="Employee" ThisKey="ReportsTo" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004140" Member="Employees" Type="Employee" ThisKey="EmployeeId" OtherKey="ReportsTo" />\r
+      <Association Name="SYS_C004144" Member="EmployeeTerritories" Type="EmployeeTerritory" ThisKey="EmployeeId" OtherKey="EmployeeId" />\r
+      <Association Name="SYS_C004149" Member="Orders" Type="Order" ThisKey="EmployeeId" OtherKey="EmployeeId" />\r
+      <Column Name="ADDRESS" Member="Address" Storage="address" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="BIRTHDATE" Member="BirthDate" Storage="birthDate" Type="System.DateTime" DbType="DATE" CanBeNull="true" />\r
+      <Column Name="CITY" Member="City" Storage="city" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="COUNTRY" Member="Country" Storage="country" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="EMPLOYEEID" Member="EmployeeId" Storage="employeeId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+      <Column Name="FIRSTNAME" Member="FirstName" Storage="firstName" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="HIREDATE" Member="HireDate" Storage="hireDate" Type="System.DateTime" DbType="DATE" CanBeNull="true" />\r
+      <Column Name="HOMEPHONE" Member="HomePhone" Storage="homePhone" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="LASTNAME" Member="LastName" Storage="lastName" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="NOTES" Member="Notes" Storage="notes" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="PHOTO" Member="Photo" Storage="photo" Type="System.Byte[]" DbType="BLOB" CanBeNull="true" />\r
+      <Column Name="POSTALCODE" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="REGION" Member="Region" Storage="region" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="REPORTSTO" Member="ReportsTo" Storage="reportsTo" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="TITLE" Member="Title" Storage="title" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.EMPLOYEETERRITORIES" Member="EmployeeTerritories">\r
+    <Type Name="EmployeeTerritory">\r
+      <Association Name="SYS_C004145" Member="Territory" Storage="sysC004145" Type="Territory" ThisKey="TerritoryId" OtherKey="TerritoryId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004144" Member="Employee" Storage="sysC004144" Type="Employee" ThisKey="EmployeeId" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Column Name="EMPLOYEEID" Member="EmployeeId" Storage="employeeId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="TERRITORYID" Member="TerritoryId" Storage="territoryId" Type="System.String" DbType="VARCHAR2" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.ORDERS" Member="Orders">\r
+    <Type Name="Order">\r
+      <Association Name="SYS_C004149" Member="Employee" Storage="sysC004149" Type="Employee" ThisKey="EmployeeId" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004148" Member="Customer" Storage="sysC004148" Type="Customer" ThisKey="CustomerId" OtherKey="CustomerId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004156" Member="OrderDetails" Type="OrderDetail" ThisKey="OrderId" OtherKey="OrderId" />\r
+      <Column Name="CUSTOMERID" Member="CustomerId" Storage="customerId" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="EMPLOYEEID" Member="EmployeeId" Storage="employeeId" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="FREIGHT" Member="Freight" Storage="freight" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="ORDERDATE" Member="OrderDate" Storage="orderDate" Type="System.DateTime" DbType="DATE" CanBeNull="true" />\r
+      <Column Name="ORDERID" Member="OrderId" Storage="orderId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+      <Column Name="REQUIREDDATE" Member="RequiredDate" Storage="requiredDate" Type="System.DateTime" DbType="DATE" CanBeNull="true" />\r
+      <Column Name="SHIPADDRESS" Member="ShipAddress" Storage="shipAddress" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SHIPCITY" Member="ShipCity" Storage="shipCity" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SHIPCOUNTRY" Member="ShipCountry" Storage="shipCountry" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SHIPNAME" Member="ShipName" Storage="shipName" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SHIPPEDDATE" Member="ShippedDate" Storage="shippedDate" Type="System.DateTime" DbType="DATE" CanBeNull="true" />\r
+      <Column Name="SHIPPOSTALCODE" Member="ShipPostalCode" Storage="shipPostalCode" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SHIPREGION" Member="ShipRegion" Storage="shipRegion" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SHIPVIA" Member="ShipVia" Storage="shipVia" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.ORDERDETAILS" Member="OrderDetails">\r
+    <Type Name="OrderDetail">\r
+      <Association Name="SYS_C004157" Member="Product" Storage="sysC004157" Type="Product" ThisKey="ProductId" OtherKey="ProductId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004156" Member="Order" Storage="sysC004156" Type="Order" ThisKey="OrderId" OtherKey="OrderId" IsForeignKey="true" />\r
+      <Column Name="DISCOUNT" Member="Discount" Storage="discount" Type="System.Single" DbType="FLOAT" CanBeNull="false" />\r
+      <Column Name="ORDERID" Member="OrderId" Storage="orderId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="PRODUCTID" Member="ProductId" Storage="productId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="QUANTITY" Member="Quantity" Storage="quantity" Type="System.Decimal" DbType="NUMBER" CanBeNull="false" />\r
+      <Column Name="UNITPRICE" Member="UnitPrice" Storage="unitPrice" Type="System.Decimal" DbType="NUMBER" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.PRODUCTS" Member="Products">\r
+    <Type Name="Product">\r
+      <Association Name="SYS_C004132" Member="Supplier" Storage="sysC004132" Type="Supplier" ThisKey="SupplierId" OtherKey="SupplierId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004131" Member="Category" Storage="sysC004131" Type="Category" ThisKey="CategoryId" OtherKey="CategoryId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004157" Member="OrderDetails" Type="OrderDetail" ThisKey="ProductId" OtherKey="ProductId" />\r
+      <Column Name="CATEGORYID" Member="CategoryId" Storage="categoryId" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="DISCONTINUED" Member="Discontinued" Storage="discontinued" Type="System.Boolean" DbType="NUMBER" CanBeNull="false" />\r
+      <Column Name="PRODUCTID" Member="ProductId" Storage="productId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+      <Column Name="PRODUCTNAME" Member="ProductName" Storage="productName" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="QUANTITYPERUNIT" Member="QuantityPerUnit" Storage="quantityPerUnit" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="REORDERLEVEL" Member="ReorderLevel" Storage="reorderLevel" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="SUPPLIERID" Member="SupplierId" Storage="supplierId" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="UNITPRICE" Member="UnitPrice" Storage="unitPrice" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="UNITSINSTOCK" Member="UnitsInStock" Storage="unitsInStock" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="UNITSONORDER" Member="UnitsOnOrder" Storage="unitsOnOrder" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.REGION" Member="Regions">\r
+    <Type Name="Region">\r
+      <Association Name="SYS_C004120" Member="Territories" Type="Territory" ThisKey="RegionId" OtherKey="RegionId" />\r
+      <Column Name="REGIONDESCRIPTION" Member="RegionDescription" Storage="regionDescription" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="REGIONID" Member="RegionId" Storage="regionId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.SUPPLIERS" Member="Suppliers">\r
+    <Type Name="Supplier">\r
+      <Association Name="SYS_C004132" Member="Products" Type="Product" ThisKey="SupplierId" OtherKey="SupplierId" />\r
+      <Column Name="ADDRESS" Member="Address" Storage="address" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="CITY" Member="City" Storage="city" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="COMPANYNAME" Member="CompanyName" Storage="companyName" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="CONTACTNAME" Member="ContactName" Storage="contactName" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="CONTACTTITLE" Member="ContactTitle" Storage="contactTitle" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="COUNTRY" Member="Country" Storage="country" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="FAX" Member="Fax" Storage="fax" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="PHONE" Member="Phone" Storage="phone" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="POSTALCODE" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="REGION" Member="Region" Storage="region" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SUPPLIERID" Member="SupplierId" Storage="supplierId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.TERRITORIES" Member="Territories">\r
+    <Type Name="Territory">\r
+      <Association Name="SYS_C004120" Member="Region" Storage="sysC004120" Type="Region" ThisKey="RegionId" OtherKey="RegionId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004145" Member="EmployeeTerritories" Type="EmployeeTerritory" ThisKey="TerritoryId" OtherKey="TerritoryId" />\r
+      <Column Name="REGIONID" Member="RegionId" Storage="regionId" Type="System.Decimal" DbType="NUMBER" CanBeNull="false" />\r
+      <Column Name="TERRITORYDESCRIPTION" Member="TerritoryDescription" Storage="territoryDescription" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="TERRITORYID" Member="TerritoryId" Storage="territoryId" Type="System.String" DbType="VARCHAR2" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+</Database>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/NorthwindOracle.dbml b/mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/NorthwindOracle.dbml
new file mode 100644 (file)
index 0000000..7070fd9
--- /dev/null
@@ -0,0 +1,154 @@
+<?xml version="1.0"?>\r
+<Database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Northwind" Class="Northwind" Provider="Oracle" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">\r
+  <Table Name="NORTHWIND.CASETEST" Member="CaseTests">\r
+    <Type Name="CaseTest">\r
+      <Column Name="NOCASE" Member="NoCase" Storage="noCase" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="Number1" Member="Number1" Storage="number1" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="Number2" Member="Number2" Storage="number2" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="value0" Member="Value0" Storage="value0" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="WithCase" Member="WithCase" Storage="withCase" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.CaseTest2" Member="CaseTest2">\r
+    <Type Name="CaseTest2">\r
+      <Column Name="SimpleColumn" Member="SimpleColumn" Storage="simpleColumn" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.CATEGORIES" Member="Categories">\r
+    <Type Name="Category">\r
+      <Association Name="SYS_C004131" Member="Products" Type="Product" ThisKey="CategoryId" OtherKey="CategoryId" />\r
+      <Column Name="CATEGORYID" Member="CategoryId" Storage="categoryId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+      <Column Name="CATEGORYNAME" Member="CategoryName" Storage="categoryName" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="DESCRIPTION" Member="Description" Storage="description" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="PICTURE" Member="Picture" Storage="picture" Type="System.Byte[]" DbType="BLOB" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.CUSTOMERS" Member="Customers">\r
+    <Type Name="Customer">\r
+      <Association Name="SYS_C004148" Member="Orders" Type="Order" ThisKey="CustomerId" OtherKey="CustomerId" />\r
+      <Column Name="ADDRESS" Member="Address" Storage="address" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="CITY" Member="City" Storage="city" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="COMPANYNAME" Member="CompanyName" Storage="companyName" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="CONTACTNAME" Member="ContactName" Storage="contactName" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="CONTACTTITLE" Member="ContactTitle" Storage="contactTitle" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="COUNTRY" Member="Country" Storage="country" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="CUSTOMERID" Member="CustomerId" Storage="customerId" Type="System.String" DbType="VARCHAR2" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="FAX" Member="Fax" Storage="fax" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="PHONE" Member="Phone" Storage="phone" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="POSTALCODE" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="REGION" Member="Region" Storage="region" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.EMPLOYEES" Member="Employees">\r
+    <Type Name="Employee">\r
+      <Association Name="SYS_C004140" Member="ParentEmployee" Storage="sysC004140" Type="Employee" ThisKey="ReportsTo" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004140" Member="Employees" Type="Employee" ThisKey="EmployeeId" OtherKey="ReportsTo" />\r
+      <Association Name="SYS_C004144" Member="EmployeeTerritories" Type="EmployeeTerritory" ThisKey="EmployeeId" OtherKey="EmployeeId" />\r
+      <Association Name="SYS_C004149" Member="Orders" Type="Order" ThisKey="EmployeeId" OtherKey="EmployeeId" />\r
+      <Column Name="ADDRESS" Member="Address" Storage="address" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="BIRTHDATE" Member="BirthDate" Storage="birthDate" Type="System.DateTime" DbType="DATE" CanBeNull="true" />\r
+      <Column Name="CITY" Member="City" Storage="city" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="COUNTRY" Member="Country" Storage="country" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="EMPLOYEEID" Member="EmployeeId" Storage="employeeId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+      <Column Name="FIRSTNAME" Member="FirstName" Storage="firstName" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="HIREDATE" Member="HireDate" Storage="hireDate" Type="System.DateTime" DbType="DATE" CanBeNull="true" />\r
+      <Column Name="HOMEPHONE" Member="HomePhone" Storage="homePhone" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="LASTNAME" Member="LastName" Storage="lastName" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="NOTES" Member="Notes" Storage="notes" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="PHOTO" Member="Photo" Storage="photo" Type="System.Byte[]" DbType="BLOB" CanBeNull="true" />\r
+      <Column Name="POSTALCODE" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="REGION" Member="Region" Storage="region" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="REPORTSTO" Member="ReportsTo" Storage="reportsTo" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="TITLE" Member="Title" Storage="title" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.EMPLOYEETERRITORIES" Member="EmployeeTerritories">\r
+    <Type Name="EmployeeTerritory">\r
+      <Association Name="SYS_C004145" Member="Territory" Storage="sysC004145" Type="Territory" ThisKey="TerritoryId" OtherKey="TerritoryId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004144" Member="Employee" Storage="sysC004144" Type="Employee" ThisKey="EmployeeId" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Column Name="EMPLOYEEID" Member="EmployeeId" Storage="employeeId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="TERRITORYID" Member="TerritoryId" Storage="territoryId" Type="System.String" DbType="VARCHAR2" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.ORDERS" Member="Orders">\r
+    <Type Name="Order">\r
+      <Association Name="SYS_C004149" Member="Employee" Storage="sysC004149" Type="Employee" ThisKey="EmployeeId" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004148" Member="Customer" Storage="sysC004148" Type="Customer" ThisKey="CustomerId" OtherKey="CustomerId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004156" Member="OrderDetails" Type="OrderDetail" ThisKey="OrderId" OtherKey="OrderId" />\r
+      <Column Name="CUSTOMERID" Member="CustomerId" Storage="customerId" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="EMPLOYEEID" Member="EmployeeId" Storage="employeeId" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="FREIGHT" Member="Freight" Storage="freight" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="ORDERDATE" Member="OrderDate" Storage="orderDate" Type="System.DateTime" DbType="DATE" CanBeNull="true" />\r
+      <Column Name="ORDERID" Member="OrderId" Storage="orderId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+      <Column Name="REQUIREDDATE" Member="RequiredDate" Storage="requiredDate" Type="System.DateTime" DbType="DATE" CanBeNull="true" />\r
+      <Column Name="SHIPADDRESS" Member="ShipAddress" Storage="shipAddress" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SHIPCITY" Member="ShipCity" Storage="shipCity" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SHIPCOUNTRY" Member="ShipCountry" Storage="shipCountry" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SHIPNAME" Member="ShipName" Storage="shipName" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SHIPPEDDATE" Member="ShippedDate" Storage="shippedDate" Type="System.DateTime" DbType="DATE" CanBeNull="true" />\r
+      <Column Name="SHIPPOSTALCODE" Member="ShipPostalCode" Storage="shipPostalCode" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SHIPREGION" Member="ShipRegion" Storage="shipRegion" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SHIPVIA" Member="ShipVia" Storage="shipVia" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.ORDERDETAILS" Member="OrderDetails">\r
+    <Type Name="OrderDetail">\r
+      <Association Name="SYS_C004157" Member="Product" Storage="sysC004157" Type="Product" ThisKey="ProductId" OtherKey="ProductId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004156" Member="Order" Storage="sysC004156" Type="Order" ThisKey="OrderId" OtherKey="OrderId" IsForeignKey="true" />\r
+      <Column Name="DISCOUNT" Member="Discount" Storage="discount" Type="System.Single" DbType="FLOAT" CanBeNull="false" />\r
+      <Column Name="ORDERID" Member="OrderId" Storage="orderId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="PRODUCTID" Member="ProductId" Storage="productId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="QUANTITY" Member="Quantity" Storage="quantity" Type="System.Decimal" DbType="NUMBER" CanBeNull="false" />\r
+      <Column Name="UNITPRICE" Member="UnitPrice" Storage="unitPrice" Type="System.Decimal" DbType="NUMBER" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.PRODUCTS" Member="Products">\r
+    <Type Name="Product">\r
+      <Association Name="SYS_C004132" Member="Supplier" Storage="sysC004132" Type="Supplier" ThisKey="SupplierId" OtherKey="SupplierId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004131" Member="Category" Storage="sysC004131" Type="Category" ThisKey="CategoryId" OtherKey="CategoryId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004157" Member="OrderDetails" Type="OrderDetail" ThisKey="ProductId" OtherKey="ProductId" />\r
+      <Column Name="CATEGORYID" Member="CategoryId" Storage="categoryId" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="DISCONTINUED" Member="Discontinued" Storage="discontinued" Type="System.Boolean" DbType="NUMBER" CanBeNull="false" />\r
+      <Column Name="PRODUCTID" Member="ProductId" Storage="productId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+      <Column Name="PRODUCTNAME" Member="ProductName" Storage="productName" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="QUANTITYPERUNIT" Member="QuantityPerUnit" Storage="quantityPerUnit" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="REORDERLEVEL" Member="ReorderLevel" Storage="reorderLevel" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="SUPPLIERID" Member="SupplierId" Storage="supplierId" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="UNITPRICE" Member="UnitPrice" Storage="unitPrice" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="UNITSINSTOCK" Member="UnitsInStock" Storage="unitsInStock" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+      <Column Name="UNITSONORDER" Member="UnitsOnOrder" Storage="unitsOnOrder" Type="System.Decimal" DbType="NUMBER" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.REGION" Member="Regions">\r
+    <Type Name="Region">\r
+      <Association Name="SYS_C004120" Member="Territories" Type="Territory" ThisKey="RegionId" OtherKey="RegionId" />\r
+      <Column Name="REGIONDESCRIPTION" Member="RegionDescription" Storage="regionDescription" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="REGIONID" Member="RegionId" Storage="regionId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.SUPPLIERS" Member="Suppliers">\r
+    <Type Name="Supplier">\r
+      <Association Name="SYS_C004132" Member="Products" Type="Product" ThisKey="SupplierId" OtherKey="SupplierId" />\r
+      <Column Name="ADDRESS" Member="Address" Storage="address" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="CITY" Member="City" Storage="city" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="COMPANYNAME" Member="CompanyName" Storage="companyName" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="CONTACTNAME" Member="ContactName" Storage="contactName" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="CONTACTTITLE" Member="ContactTitle" Storage="contactTitle" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="COUNTRY" Member="Country" Storage="country" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="FAX" Member="Fax" Storage="fax" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="PHONE" Member="Phone" Storage="phone" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="POSTALCODE" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="REGION" Member="Region" Storage="region" Type="System.String" DbType="VARCHAR2" CanBeNull="true" />\r
+      <Column Name="SUPPLIERID" Member="SupplierId" Storage="supplierId" Type="System.Decimal" DbType="NUMBER" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="NORTHWIND.TERRITORIES" Member="Territories">\r
+    <Type Name="Territory">\r
+      <Association Name="SYS_C004120" Member="Region" Storage="sysC004120" Type="Region" ThisKey="RegionId" OtherKey="RegionId" IsForeignKey="true" />\r
+      <Association Name="SYS_C004145" Member="EmployeeTerritories" Type="EmployeeTerritory" ThisKey="TerritoryId" OtherKey="TerritoryId" />\r
+      <Column Name="REGIONID" Member="RegionId" Storage="regionId" Type="System.Decimal" DbType="NUMBER" CanBeNull="false" />\r
+      <Column Name="TERRITORYDESCRIPTION" Member="TerritoryDescription" Storage="territoryDescription" Type="System.String" DbType="VARCHAR2" CanBeNull="false" />\r
+      <Column Name="TERRITORYID" Member="TerritoryId" Storage="territoryId" Type="System.String" DbType="VARCHAR2" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+</Database>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/TestBase.cs b/mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/TestBase.cs
new file mode 100755 (executable)
index 0000000..1d3ec75
--- /dev/null
@@ -0,0 +1,52 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Data;\r
+\r
+namespace Test_NUnit\r
+{\r
+    public abstract partial class TestBase\r
+    {\r
+        public const StringComparison stringComparisonType = StringComparison.Ordinal;\r
+\r
+        public static IDbCommand CreateCommand (string sql, IDbConnection conn)\r
+        {\r
+            return new System.Data.OracleClient.OracleCommand(sql, (System.Data.OracleClient.OracleConnection) conn);\r
+        }\r
+\r
+        public static IDbConnection CreateConnection (string connectionString)\r
+        {\r
+            return new System.Data.OracleClient.OracleConnection(connectionString);\r
+        }\r
+\r
+        public DbLinq.Vendor.IVendor CreateVendor()\r
+        {\r
+            return new DbLinq.Oracle.OracleVendor();\r
+        }\r
+    }\r
+}\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/TestBase_odp.cs b/mcs/class/System.Data.Linq/src/DbLinq.Oracle/Test/TestBase_odp.cs
new file mode 100755 (executable)
index 0000000..cd36f98
--- /dev/null
@@ -0,0 +1,52 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Data;\r
+\r
+namespace Test_NUnit\r
+{\r
+    public abstract partial class TestBase\r
+    {\r
+        public const StringComparison stringComparisonType = StringComparison.Ordinal;\r
+\r
+        public static IDbCommand CreateCommand (string sql, IDbConnection conn)\r
+        {\r
+            return new Oracle.DataAccess.Client.OracleCommand(sql, (Oracle.DataAccess.Client.OracleConnection) conn);\r
+        }\r
+\r
+        public static IDbConnection CreateConnection (string connectionString)\r
+        {\r
+            return new Oracle.DataAccess.Client.OracleConnection(connectionString);\r
+        }\r
+\r
+        public DbLinq.Vendor.IVendor CreateVendor()\r
+        {\r
+            return new DbLinq.Oracle.OracleVendor();\r
+        }\r
+    }\r
+}\r
index 20352ea007db9230a66400d0af4063171910373f..8b520e751590372f49286a99efdc9b7e7a6ce99c 100755 (executable)
@@ -19,7 +19,7 @@
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
     <Optimize>false</Optimize>\r
-    <OutputPath>bin\Debug\</OutputPath>\r
+    <OutputPath>..\..\build.dbg\</OutputPath>\r
     <DefineConstants>DEBUG;TRACE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
@@ -76,4 +76,4 @@
   <Target Name="AfterBuild">\r
   </Target>\r
   -->\r
-</Project>
\ No newline at end of file
+</Project>\r
index 0b1d0db24b75e66d77c110418b2975857753d663..d4959380b5548bd4720f1b1124af6e475f1842b0 100644 (file)
@@ -228,14 +228,5 @@ namespace DbLinq.PostgreSql
             }\r
             return outParamValues;\r
         }\r
-\r
-        override protected TypeToLoadData GetProviderTypeName()\r
-        {\r
-            return new TypeToLoadData\r
-            {\r
-                assemblyName = "Npgsql.DLL",\r
-                className = "NpgsqlConnection",\r
-            };\r
-        }\r
     }\r
 }\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.PostgreSql/Test/DbLinq.PostgreSql_test.csproj b/mcs/class/System.Data.Linq/src/DbLinq.PostgreSql/Test/DbLinq.PostgreSql_test.csproj
new file mode 100644 (file)
index 0000000..9cb1296
--- /dev/null
@@ -0,0 +1,217 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{858BAFF7-542F-4DBB-940B-57333E4DB7CE}</ProjectGuid>\r
+    <OutputType>WinExe</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>Test_NUnit</RootNamespace>\r
+    <AssemblyName>DbLinq.PostgreSql_test</AssemblyName>\r
+    <StartupObject>\r
+    </StartupObject>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <UpgradeBackupLocation>\r
+    </UpgradeBackupLocation>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;POSTGRES</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>1</WarningLevel>\r
+    <NoWarn>\r
+    </NoWarn>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;POSTGRES</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="Npgsql, Version=1.98.3.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\Npgsql.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Security" />\r
+    <Reference Include="System.Xml" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\..\..\examples\DbLinq.Pgsql.Example\nwind\Northwind.cs">\r
+      <Link>nwind\Northwind.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\lib\DynamicLinq.cs">\r
+      <Link>lib\DynamicLinq.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Attach.cs">\r
+      <Link>Providers\Attach.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\CompositePK_Test.cs">\r
+      <Link>Providers\CompositePK_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DynamicLinqTest.cs">\r
+      <Link>Providers\DynamicLinqTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteCommand_Test.cs">\r
+      <Link>Providers\ExecuteCommand_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteQuery_Test.cs">\r
+      <Link>Providers\ExecuteQuery_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Advanced.cs">\r
+      <Link>Providers\Linq_101_Samples\Advanced.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Conversion_Operators.cs">\r
+      <Link>Providers\Linq_101_Samples\Conversion_Operators.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs">\r
+      <Link>Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\ExsistIn_Any_All.cs">\r
+      <Link>Providers\Linq_101_Samples\ExsistIn_Any_All.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\GroupBy_Having.cs">\r
+      <Link>Providers\Linq_101_Samples\GroupBy_Having.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Inheritance.cs">\r
+      <Link>Providers\Linq_101_Samples\Inheritance.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Insert_Update_Delete.cs">\r
+      <Link>Providers\Linq_101_Samples\Insert_Update_Delete.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Join.cs">\r
+      <Link>Providers\Linq_101_Samples\Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs">\r
+      <Link>Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Null.cs">\r
+      <Link>Providers\Linq_101_Samples\Null.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object Loading.cs">\r
+      <Link>Providers\Linq_101_Samples\Object Loading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object_Identity.cs">\r
+      <Link>Providers\Linq_101_Samples\Object_Identity.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\OrderBy.cs">\r
+      <Link>Providers\Linq_101_Samples\OrderBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Paging.cs">\r
+      <Link>Providers\Linq_101_Samples\Paging.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Select_Distinct.cs">\r
+      <Link>Providers\Linq_101_Samples\Select_Distinct.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\String_Date_functions.cs">\r
+      <Link>Providers\Linq_101_Samples\String_Date_functions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Top_Bottom.cs">\r
+      <Link>Providers\Linq_101_Samples\Top_Bottom.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs">\r
+      <Link>Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Views.cs">\r
+      <Link>Providers\Linq_101_Samples\Views.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Where.cs">\r
+      <Link>Providers\Linq_101_Samples\Where.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Program2Pg.cs">\r
+      <Link>Providers\Program2Pg.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Properties\AssemblyInfo.cs">\r
+      <Link>Providers\Properties\AssemblyInfo.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest.cs">\r
+      <Link>Providers\ReadTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_AnyCountFirst.cs">\r
+      <Link>Providers\ReadTests_AnyCountFirst.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Conversions.cs">\r
+      <Link>Providers\ReadTests_Conversions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_DateTimeFunctions.cs">\r
+      <Link>Providers\ReadTests_DateTimeFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_EntitySet.cs">\r
+      <Link>Providers\ReadTests_EntitySet.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Join.cs">\r
+      <Link>Providers\ReadTests_Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Maths.cs">\r
+      <Link>Providers\ReadTests_Maths.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_ReferenceLoading.cs">\r
+      <Link>Providers\ReadTests_ReferenceLoading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_StringFunctions.cs">\r
+      <Link>Providers\ReadTests_StringFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Complex.cs">\r
+      <Link>Providers\ReadTest_Complex.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_GroupBy.cs">\r
+      <Link>Providers\ReadTest_GroupBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Operands.cs">\r
+      <Link>Providers\ReadTest_Operands.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Subquery.cs">\r
+      <Link>Providers\ReadTest_Subquery.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\StoredProcTest.cs">\r
+      <Link>Providers\StoredProcTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Table.cs">\r
+      <Link>Providers\Table.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\TestBase.cs">\r
+      <Link>Providers\TestBase.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Transactions.cs">\r
+      <Link>Providers\Transactions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest.cs">\r
+      <Link>Providers\WriteTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="TestBase.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Content Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\101_readme.htm">\r
+      <Link>Providers\Linq_101_Samples\101_readme.htm</Link>\r
+    </Content>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\DbLinq.PostgreSql.csproj">\r
+      <Project>{32824F7E-9260-413C-B174-F3E315936FA7}</Project>\r
+      <Name>DbLinq.PostgreSql</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\..\DbLinq\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.PostgreSql/Test/NorthwindPgsql.dbml b/mcs/class/System.Data.Linq/src/DbLinq.PostgreSql/Test/NorthwindPgsql.dbml
new file mode 100644 (file)
index 0000000..38db189
--- /dev/null
@@ -0,0 +1,163 @@
+<?xml version="1.0"?>\r
+<Database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="northwind" Class="NorthWind" Provider="PostgreSQL" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">\r
+  <Table Name="public.categories" Member="Categories">\r
+    <Type Name="Category">\r
+      <Association Name="fk_prod_catg" Member="Products" Type="Product" ThisKey="CategoryId" OtherKey="CategoryId" />\r
+      <Column Name="categoryid" Member="CategoryId" Storage="categoryId" Type="System.Int32" DbType="integer(32,0)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="nextval('categories_categoryid_seq')" />\r
+      <Column Name="categoryname" Member="CategoryName" Storage="categoryName" Type="System.String" DbType="character varying(15)" CanBeNull="false" />\r
+      <Column Name="description" Member="Description" Storage="description" Type="System.String" DbType="text" CanBeNull="true" />\r
+      <Column Name="picture" Member="Picture" Storage="picture" Type="System.Byte[]" DbType="oid" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="public.customers" Member="Customers">\r
+    <Type Name="Customer">\r
+      <Association Name="fk_order_customer" Member="Orders" Type="Order" ThisKey="CustomerId" OtherKey="CustomerId" />\r
+      <Column Name="address" Member="Address" Storage="address" Type="System.String" DbType="character varying(60)" CanBeNull="true" />\r
+      <Column Name="city" Member="City" Storage="city" Type="System.String" DbType="character varying(15)" CanBeNull="true" />\r
+      <Column Name="companyname" Member="CompanyName" Storage="companyName" Type="System.String" DbType="character varying(40)" CanBeNull="false" />\r
+      <Column Name="contactname" Member="ContactName" Storage="contactName" Type="System.String" DbType="character varying(30)" CanBeNull="false" />\r
+      <Column Name="contacttitle" Member="ContactTitle" Storage="contactTitle" Type="System.String" DbType="character varying(30)" CanBeNull="true" />\r
+      <Column Name="country" Member="Country" Storage="country" Type="System.String" DbType="character varying(15)" CanBeNull="true" />\r
+      <Column Name="customerid" Member="CustomerId" Storage="customerId" Type="System.String" DbType="character varying(5)" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="fax" Member="Fax" Storage="fax" Type="System.String" DbType="character varying(24)" CanBeNull="true" />\r
+      <Column Name="phone" Member="Phone" Storage="phone" Type="System.String" DbType="character varying(24)" CanBeNull="true" />\r
+      <Column Name="postalcode" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="character varying(10)" CanBeNull="true" />\r
+      <Column Name="region" Member="Region" Storage="region" Type="System.String" DbType="character varying(15)" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="public.employees" Member="Employees">\r
+    <Type Name="Employee">\r
+      <Association Name="fk_emp_reportstoemp" Member="ParentEmployee" Storage="fkEmPReportsToeMp" Type="Employee" ThisKey="ReportsTo" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="fk_emp_reportstoemp" Member="Employees" Type="Employee" ThisKey="EmployeeId" OtherKey="ReportsTo" />\r
+      <Association Name="employeeterritories_employeeid_fkey" Member="EmployeeTerritories" Type="EmployeeTerritory" ThisKey="EmployeeId" OtherKey="EmployeeId" />\r
+      <Association Name="fk_order_product" Member="Orders" Type="Order" ThisKey="EmployeeId" OtherKey="EmployeeId" />\r
+      <Column Name="address" Member="Address" Storage="address" Type="System.String" DbType="character varying(60)" CanBeNull="true" />\r
+      <Column Name="birthdate" Member="BirthDate" Storage="birthDate" Type="System.DateTime" DbType="date" CanBeNull="true" />\r
+      <Column Name="city" Member="City" Storage="city" Type="System.String" DbType="character varying(15)" CanBeNull="true" />\r
+      <Column Name="country" Member="Country" Storage="country" Type="System.String" DbType="character varying(15)" CanBeNull="true" />\r
+      <Column Name="employeeid" Member="EmployeeId" Storage="employeeId" Type="System.Int32" DbType="integer(32,0)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="nextval('employees_employeeid_seq')" />\r
+      <Column Name="firstname" Member="FirstName" Storage="firstName" Type="System.String" DbType="character varying(10)" CanBeNull="false" />\r
+      <Column Name="hiredate" Member="HireDate" Storage="hireDate" Type="System.DateTime" DbType="timestamp without time zone" CanBeNull="true" />\r
+      <Column Name="homephone" Member="HomePhone" Storage="homePhone" Type="System.String" DbType="character varying(24)" CanBeNull="true" />\r
+      <Column Name="lastname" Member="LastName" Storage="lastName" Type="System.String" DbType="character varying(20)" CanBeNull="false" />\r
+      <Column Name="notes" Member="Notes" Storage="notes" Type="System.String" DbType="text" CanBeNull="true" />\r
+      <Column Name="photo" Member="Photo" Storage="photo" Type="System.Byte[]" DbType="oid" CanBeNull="true" />\r
+      <Column Name="postalcode" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="character varying(10)" CanBeNull="true" />\r
+      <Column Name="region" Member="Region" Storage="region" Type="System.String" DbType="character varying(15)" CanBeNull="true" />\r
+      <Column Name="reportsto" Member="ReportsTo" Storage="reportsTo" Type="System.Int32" DbType="integer(32,0)" CanBeNull="true" />\r
+      <Column Name="title" Member="Title" Storage="title" Type="System.String" DbType="character varying(30)" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="public.employeeterritories" Member="EmployeeTerritories">\r
+    <Type Name="EmployeeTerritory">\r
+      <Association Name="employeeterritories_employeeid_fkey" Member="Employee" Storage="employeeTerritoriesEmployeeIdFkEY" Type="Employee" ThisKey="EmployeeId" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="employeeterritories_territoryid_fkey" Member="Territory" Storage="employeeTerritoriesTerritoryIdFkEY" Type="Territory" ThisKey="TerritoryId" OtherKey="TerritoryId" IsForeignKey="true" />\r
+      <Column Name="employeeid" Member="EmployeeId" Storage="employeeId" Type="System.Int32" DbType="integer(32,0)" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="territoryid" Member="TerritoryId" Storage="territoryId" Type="System.String" DbType="character varying(20)" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="public.orders" Member="Orders">\r
+    <Type Name="Order">\r
+      <Association Name="fk_order_customer" Member="Customer" Storage="fkOrderCustomer" Type="Customer" ThisKey="CustomerId" OtherKey="CustomerId" IsForeignKey="true" />\r
+      <Association Name="fk_order_product" Member="Employee" Storage="fkOrderProduct" Type="Employee" ThisKey="EmployeeId" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="orderdetails_orderid_fkey" Member="OrderDetails" Type="OrderDetail" ThisKey="OrderId" OtherKey="OrderId" />\r
+      <Column Name="customerid" Member="CustomerId" Storage="customerId" Type="System.String" DbType="character varying(5)" CanBeNull="false" />\r
+      <Column Name="employeeid" Member="EmployeeId" Storage="employeeId" Type="System.Int32" DbType="integer(32,0)" CanBeNull="true" />\r
+      <Column Name="freight" Member="Freight" Storage="freight" Type="System.Decimal" DbType="numeric" CanBeNull="true" />\r
+      <Column Name="orderdate" Member="OrderDate" Storage="orderDate" Type="System.DateTime" DbType="timestamp without time zone" CanBeNull="true" />\r
+      <Column Name="orderid" Member="OrderId" Storage="orderId" Type="System.Int32" DbType="integer(32,0)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="nextval('orders_orderid_seq')" />\r
+      <Column Name="requireddate" Member="RequiredDate" Storage="requiredDate" Type="System.DateTime" DbType="timestamp without time zone" CanBeNull="true" />\r
+      <Column Name="shipaddress" Member="ShipAddress" Storage="shipAddress" Type="System.String" DbType="character varying(60)" CanBeNull="true" />\r
+      <Column Name="shipcity" Member="ShipCity" Storage="shipCity" Type="System.String" DbType="character varying(15)" CanBeNull="true" />\r
+      <Column Name="shipcountry" Member="ShipCountry" Storage="shipCountry" Type="System.String" DbType="character varying(15)" CanBeNull="true" />\r
+      <Column Name="shipname" Member="ShipName" Storage="shipName" Type="System.String" DbType="character varying(40)" CanBeNull="true" />\r
+      <Column Name="shippeddate" Member="ShippedDate" Storage="shippedDate" Type="System.DateTime" DbType="timestamp without time zone" CanBeNull="true" />\r
+      <Column Name="shippostalcode" Member="ShipPostalCode" Storage="shipPostalCode" Type="System.String" DbType="character varying(10)" CanBeNull="true" />\r
+      <Column Name="shipregion" Member="ShipRegion" Storage="shipRegion" Type="System.String" DbType="character varying(15)" CanBeNull="true" />\r
+      <Column Name="shipvia" Member="ShipVia" Storage="shipVia" Type="System.Int32" DbType="integer(32,0)" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="public.orderdetails" Member="OrderDetails">\r
+    <Type Name="OrderDetail">\r
+      <Association Name="orderdetails_orderid_fkey" Member="Order" Storage="orderDetailsOrderIdFkEY" Type="Order" ThisKey="OrderId" OtherKey="OrderId" IsForeignKey="true" />\r
+      <Association Name="orderdetails_productid_fkey" Member="Product" Storage="orderDetailsProductIdFkEY" Type="Product" ThisKey="ProductId" OtherKey="ProductId" IsForeignKey="true" />\r
+      <Column Name="discount" Member="Discount" Storage="discount" Type="System.Double" DbType="double precision" CanBeNull="true" />\r
+      <Column Name="orderid" Member="OrderId" Storage="orderId" Type="System.Int32" DbType="integer(32,0)" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="productid" Member="ProductId" Storage="productId" Type="System.Int32" DbType="integer(32,0)" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="quantity" Member="Quantity" Storage="quantity" Type="System.Int32" DbType="integer(32,0)" CanBeNull="true" />\r
+      <Column Name="unitprice" Member="UnitPrice" Storage="unitPrice" Type="System.Decimal" DbType="numeric" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="public.products" Member="Products">\r
+    <Type Name="Product">\r
+      <Association Name="fk_prod_catg" Member="Category" Storage="fkProdCatG" Type="Category" ThisKey="CategoryId" OtherKey="CategoryId" IsForeignKey="true" />\r
+      <Association Name="fk_prod_supp" Member="Supplier" Storage="fkProdSupP" Type="Supplier" ThisKey="SupplierId" OtherKey="SupplierId" IsForeignKey="true" />\r
+      <Association Name="orderdetails_productid_fkey" Member="OrderDetails" Type="OrderDetail" ThisKey="ProductId" OtherKey="ProductId" />\r
+      <Column Name="categoryid" Member="CategoryId" Storage="categoryId" Type="System.Int32" DbType="integer(32,0)" CanBeNull="true" />\r
+      <Column Name="discontinued" Member="Discontinued" Storage="discontinued" Type="System.Boolean" DbType="bit(1)" CanBeNull="false" />\r
+      <Column Name="productid" Member="ProductId" Storage="productId" Type="System.Int32" DbType="integer(32,0)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="nextval('products_productid_seq')" />\r
+      <Column Name="productname" Member="ProductName" Storage="productName" Type="System.String" DbType="character varying(40)" CanBeNull="false" />\r
+      <Column Name="quantityperunit" Member="QuantityPerUnit" Storage="quantityPerUnit" Type="System.String" DbType="character varying(20)" CanBeNull="true" />\r
+      <Column Name="reorderlevel" Member="ReorderLevel" Storage="reorderLevel" Type="System.Int16" DbType="smallint(16,0)" CanBeNull="true" />\r
+      <Column Name="supplierid" Member="SupplierId" Storage="supplierId" Type="System.Int32" DbType="integer(32,0)" CanBeNull="true" />\r
+      <Column Name="unitprice" Member="UnitPrice" Storage="unitPrice" Type="System.Decimal" DbType="numeric" CanBeNull="true" />\r
+      <Column Name="unitsinstock" Member="UnitsInStock" Storage="unitsInStock" Type="System.Int16" DbType="smallint(16,0)" CanBeNull="true" />\r
+      <Column Name="unitsonorder" Member="UnitsOnOrder" Storage="unitsOnOrder" Type="System.Int16" DbType="smallint(16,0)" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="public.region" Member="Regions">\r
+    <Type Name="Region">\r
+      <Association Name="fk_terr_region" Member="Territories" Type="Territory" ThisKey="RegionId" OtherKey="RegionId" />\r
+      <Column Name="regiondescription" Member="RegionDescription" Storage="regionDescription" Type="System.String" DbType="character varying(50)" CanBeNull="false" />\r
+      <Column Name="regionid" Member="RegionId" Storage="regionId" Type="System.Int32" DbType="integer(32,0)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="nextval('region_regionid_seq')" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="public.shippers" Member="Shippers">\r
+    <Type Name="Shipper">\r
+      <Column Name="companyname" Member="CompanyName" Storage="companyName" Type="System.String" DbType="character varying(40)" CanBeNull="false" />\r
+      <Column Name="phone" Member="Phone" Storage="phone" Type="System.String" DbType="character varying(24)" CanBeNull="true" />\r
+      <Column Name="shipperid" Member="ShipperId" Storage="shipperId" Type="System.Int32" DbType="integer(32,0)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="nextval('shippers_shipperid_seq')" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="public.suppliers" Member="Suppliers">\r
+    <Type Name="Supplier">\r
+      <Association Name="fk_prod_supp" Member="Products" Type="Product" ThisKey="SupplierId" OtherKey="SupplierId" />\r
+      <Column Name="address" Member="Address" Storage="address" Type="System.String" DbType="character varying(60)" CanBeNull="true" />\r
+      <Column Name="city" Member="City" Storage="city" Type="System.String" DbType="character varying(15)" CanBeNull="true" />\r
+      <Column Name="companyname" Member="CompanyName" Storage="companyName" Type="System.String" DbType="character varying(40)" CanBeNull="false" />\r
+      <Column Name="contactname" Member="ContactName" Storage="contactName" Type="System.String" DbType="character varying(30)" CanBeNull="true" />\r
+      <Column Name="contacttitle" Member="ContactTitle" Storage="contactTitle" Type="System.String" DbType="character varying(30)" CanBeNull="true" />\r
+      <Column Name="country" Member="Country" Storage="country" Type="System.String" DbType="character varying(15)" CanBeNull="true" />\r
+      <Column Name="fax" Member="Fax" Storage="fax" Type="System.String" DbType="character varying(24)" CanBeNull="true" />\r
+      <Column Name="phone" Member="Phone" Storage="phone" Type="System.String" DbType="character varying(24)" CanBeNull="true" />\r
+      <Column Name="postalcode" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="character varying(10)" CanBeNull="true" />\r
+      <Column Name="region" Member="Region" Storage="region" Type="System.String" DbType="character varying(15)" CanBeNull="true" />\r
+      <Column Name="supplierid" Member="SupplierId" Storage="supplierId" Type="System.Int32" DbType="integer(32,0)" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" Expression="nextval('suppliers_supplierid_seq')" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="public.territories" Member="Territories">\r
+    <Type Name="Territory">\r
+      <Association Name="fk_terr_region" Member="Region" Storage="fkTeRrRegion" Type="Region" ThisKey="RegionId" OtherKey="RegionId" IsForeignKey="true" />\r
+      <Association Name="employeeterritories_territoryid_fkey" Member="EmployeeTerritories" Type="EmployeeTerritory" ThisKey="TerritoryId" OtherKey="TerritoryId" />\r
+      <Column Name="regionid" Member="RegionId" Storage="regionId" Type="System.Int32" DbType="integer(32,0)" CanBeNull="false" />\r
+      <Column Name="territorydescription" Member="TerritoryDescription" Storage="territoryDescription" Type="System.String" DbType="character varying(50)" CanBeNull="false" />\r
+      <Column Name="territoryid" Member="TerritoryId" Storage="territoryId" Type="System.String" DbType="character varying(20)" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Function Name="getordercount" Method="GetOrderCount">\r
+    <Parameter Name="custid" Type="System.String" DbType="character varying" Direction="In" />\r
+    <Return Type="System.Int32" DbType="integer" />\r
+  </Function>\r
+  <Function Name="hello0" Method="Hello0">\r
+    <Return Type="System.String" DbType="text" />\r
+  </Function>\r
+  <Function Name="hello1" Method="Hello1">\r
+    <Parameter Name="name" Type="System.String" DbType="text" Direction="In" />\r
+    <Return Type="System.String" DbType="text" />\r
+  </Function>\r
+  <Function Name="hello2" Method="Hello2">\r
+    <Parameter Name="name" Type="System.String" DbType="text" Direction="In" />\r
+    <Parameter Name="unused" Type="System.String" DbType="text" Direction="In" />\r
+    <Return Type="System.String" DbType="text" />\r
+  </Function>\r
+</Database>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.PostgreSql/Test/TestBase.cs b/mcs/class/System.Data.Linq/src/DbLinq.PostgreSql/Test/TestBase.cs
new file mode 100755 (executable)
index 0000000..fcaf689
--- /dev/null
@@ -0,0 +1,52 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Data;\r
+\r
+namespace Test_NUnit\r
+{\r
+    public abstract partial class TestBase\r
+    {\r
+        public const StringComparison stringComparisonType = StringComparison.Ordinal;\r
+\r
+        public static IDbCommand CreateCommand (string sql, IDbConnection conn)\r
+        {\r
+            return new Npgsql.NpgsqlCommand(sql, (Npgsql.NpgsqlConnection) conn);\r
+        }\r
+\r
+        public static IDbConnection CreateConnection (string connectionString)\r
+        {\r
+            return new Npgsql.NpgsqlConnection(connectionString);\r
+        }\r
+\r
+        public DbLinq.Vendor.IVendor CreateVendor()\r
+        {\r
+            return new DbLinq.PostgreSql.PgsqlVendor();\r
+        }\r
+    }\r
+}\r
index f38d5d39e47d0f303f161fb821b7859b4a1c5c31..b35df73aa35eff437305169649dc8db4a0b27ed7 100644 (file)
@@ -19,7 +19,7 @@
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
     <Optimize>false</Optimize>\r
-    <OutputPath>bin\Debug\</OutputPath>\r
+    <OutputPath>..\..\build.dbg\</OutputPath>\r
     <DefineConstants>DEBUG;TRACE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
@@ -75,4 +75,4 @@
   <Target Name="AfterBuild">\r
   </Target>\r
   -->\r
-</Project>
\ No newline at end of file
+</Project>\r
index 9b2570483e917c9096765bcbe2e17fe0e39ce121..d4191e286afe1a07d9ff86cd45c30cb969a70322 100644 (file)
@@ -62,6 +62,13 @@ namespace DbLinq.SqlServer
             return string.Format("{0} AS {1}", GetTable(table), GetTableAlias(alias));\r
         }\r
 \r
+        public override SqlStatement GetLiteral(bool literal)\r
+        {\r
+            if (literal)\r
+                return "1";\r
+            return "0";\r
+        }\r
+\r
         public override string GetParameterName(string nameBase)\r
         {\r
             return string.Format("@{0}", nameBase);\r
index 7c628b9b3c8da2d24a8dbe096297e5287dd634fe..26c85f16df880ae48ecb29271f6dbcc9eb6f3c8d 100644 (file)
@@ -117,14 +117,5 @@ namespace DbLinq.SqlServer
         {\r
             throw new NotImplementedException();\r
         }\r
-\r
-        override protected TypeToLoadData GetProviderTypeName()\r
-        {\r
-            return new TypeToLoadData\r
-            {\r
-                assemblyName = "System.Data.DLL",\r
-                className = "SqlConnection",\r
-            };\r
-        }\r
     }\r
 }
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/DbLinq.SqlServer_test.csproj b/mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/DbLinq.SqlServer_test.csproj
new file mode 100644 (file)
index 0000000..caa0ca8
--- /dev/null
@@ -0,0 +1,228 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{A348FBCE-2246-48FF-9862-35553B4B284C}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>Test_NUnit_MsSql</RootNamespace>\r
+    <AssemblyName>DbLinq.SqlServer_test</AssemblyName>\r
+    <StartupObject>\r
+    </StartupObject>\r
+    <FileUpgradeFlags>\r
+    </FileUpgradeFlags>\r
+    <OldToolsVersion>2.0</OldToolsVersion>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <UpgradeBackupLocation>\r
+    </UpgradeBackupLocation>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;MSSQL</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;MSSQL</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="nunit.core, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.core.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.core.interfaces, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.core.interfaces.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Security" />\r
+    <Reference Include="System.Xml" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\..\..\examples\DbLinq.Mssql.Example\nwind\Northwind.cs">\r
+      <Link>nwind\Northwind.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\lib\DynamicLinq.cs">\r
+      <Link>lib\DynamicLinq.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Attach.cs">\r
+      <Link>Providers\Attach.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\CompositePK_Test.cs">\r
+      <Link>Providers\CompositePK_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DataLoadOptions_Test.cs">\r
+      <Link>Providers\DataLoadOptions_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_AnyCountFirst.cs">\r
+      <Link>Providers\ReadTests_AnyCountFirst.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Conversions.cs">\r
+      <Link>Providers\ReadTests_Conversions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_DateTimeFunctions.cs">\r
+      <Link>Providers\ReadTests_DateTimeFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DynamicLinqTest.cs">\r
+      <Link>Providers\DynamicLinqTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteCommand_Test.cs">\r
+      <Link>Providers\ExecuteCommand_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteQuery_Test.cs">\r
+      <Link>Providers\ExecuteQuery_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Advanced.cs">\r
+      <Link>Providers\Linq_101_Samples\Advanced.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Conversion_Operators.cs">\r
+      <Link>Providers\Linq_101_Samples\Conversion_Operators.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs">\r
+      <Link>Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\ExsistIn_Any_All.cs">\r
+      <Link>Providers\Linq_101_Samples\ExsistIn_Any_All.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\GroupBy_Having.cs">\r
+      <Link>Providers\Linq_101_Samples\GroupBy_Having.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Inheritance.cs">\r
+      <Link>Providers\Linq_101_Samples\Inheritance.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Insert_Update_Delete.cs">\r
+      <Link>Providers\Linq_101_Samples\Insert_Update_Delete.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Join.cs">\r
+      <Link>Providers\Linq_101_Samples\Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs">\r
+      <Link>Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Null.cs">\r
+      <Link>Providers\Linq_101_Samples\Null.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object Loading.cs">\r
+      <Link>Providers\Linq_101_Samples\Object Loading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object_Identity.cs">\r
+      <Link>Providers\Linq_101_Samples\Object_Identity.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\OrderBy.cs">\r
+      <Link>Providers\Linq_101_Samples\OrderBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Paging.cs">\r
+      <Link>Providers\Linq_101_Samples\Paging.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Select_Distinct.cs">\r
+      <Link>Providers\Linq_101_Samples\Select_Distinct.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\String_Date_functions.cs">\r
+      <Link>Providers\Linq_101_Samples\String_Date_functions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Top_Bottom.cs">\r
+      <Link>Providers\Linq_101_Samples\Top_Bottom.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs">\r
+      <Link>Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Views.cs">\r
+      <Link>Providers\Linq_101_Samples\Views.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Where.cs">\r
+      <Link>Providers\Linq_101_Samples\Where.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Properties\AssemblyInfo.cs">\r
+      <Link>Providers\Properties\AssemblyInfo.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest.cs">\r
+      <Link>Providers\ReadTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_ReferenceLoading.cs">\r
+      <Link>Providers\ReadTests_ReferenceLoading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_EntitySet.cs">\r
+      <Link>Providers\ReadTests_EntitySet.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Join.cs">\r
+      <Link>Providers\ReadTests_Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Maths.cs">\r
+      <Link>Providers\ReadTests_Maths.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_StringFunctions.cs">\r
+      <Link>Providers\ReadTests_StringFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Complex.cs">\r
+      <Link>Providers\ReadTest_Complex.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_GroupBy.cs">\r
+      <Link>Providers\ReadTest_GroupBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Operands.cs">\r
+      <Link>Providers\ReadTest_Operands.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Subquery.cs">\r
+      <Link>Providers\ReadTest_Subquery.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\StoredProcTest.cs">\r
+      <Link>Providers\StoredProcTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Table.cs">\r
+      <Link>Providers\Table.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\TestBase.cs">\r
+      <Link>Providers\TestBase.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Transactions.cs">\r
+      <Link>Providers\Transactions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\VerticalPartitioningTest.cs">\r
+      <Link>Providers\VerticalPartitioningTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest.cs">\r
+      <Link>Providers\WriteTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest_BulkInsert.cs">\r
+      <Link>Providers\WriteTest_BulkInsert.cs</Link>\r
+    </Compile>\r
+    <Compile Include="TestBase.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\101_readme.htm">\r
+      <Link>Providers\Linq_101_Samples\101_readme.htm</Link>\r
+    </None>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\DbLinq.SqlServer.csproj">\r
+      <Project>{EA47FE75-0E41-4ABF-B355-9667E78072E9}</Project>\r
+      <Name>DbLinq.SqlServer</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\..\DbLinq\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/DbLinq.SqlServer_test_ndb.csproj b/mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/DbLinq.SqlServer_test_ndb.csproj
new file mode 100644 (file)
index 0000000..023256a
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{6661D6CB-8AE4-4CEF-A81E-8A4AFB6A1CEE}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <AssemblyName>DbLinq.SqlServer_test_ndb</AssemblyName>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>DEBUG</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+    <SignAssembly>true</SignAssembly>\r
+    <AssemblyKeyFile>..\..\DbLinq.snk</AssemblyKeyFile>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>none</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+    <SignAssembly>true</SignAssembly>\r
+    <AssemblyKeyFile>..\..\DbLinq.snk</AssemblyKeyFile>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="System" />\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\..\DbLinq\Test\PeopleTable.cs">\r
+      <Link>PeopleTable.cs</Link>\r
+    </Compile>\r
+    <Compile Include="MsSqlDataContextTest.cs" />\r
+    <Compile Include="..\..\DbLinq\Test\NullProvider.cs">\r
+      <SubType>Component</SubType>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DataContextTestBase.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\..\DbLinq\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\DbLinq.SqlServer.csproj">\r
+      <Project>{EA47FE75-0E41-4ABF-B355-9667E78072E9}</Project>\r
+      <Name>DbLinq.SqlServer</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+</Project>\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/DbLinq.SqlServer_test_strict.csproj b/mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/DbLinq.SqlServer_test_strict.csproj
new file mode 100644 (file)
index 0000000..7250e0e
--- /dev/null
@@ -0,0 +1,218 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{D63B7158-6F23-4B35-9C39-871D37C9BAA6}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>Test_NUnit_MsSql</RootNamespace>\r
+    <AssemblyName>DbLinq.SqlServer_test_strict</AssemblyName>\r
+    <StartupObject>\r
+    </StartupObject>\r
+    <FileUpgradeFlags>\r
+    </FileUpgradeFlags>\r
+    <OldToolsVersion>2.0</OldToolsVersion>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <UpgradeBackupLocation>\r
+    </UpgradeBackupLocation>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;MSSQL;MONO_STRICT</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;MSSQL;MONO_STRICT</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="nunit.core, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.core.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.core.interfaces, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.core.interfaces.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Security" />\r
+    <Reference Include="System.Xml" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\..\..\examples\DbLinq.Mssql.Example\nwind\originalMSNorthwind.designer.cs">\r
+      <Link>nwind\originalMSNorthwind.designer.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\lib\DynamicLinq.cs">\r
+      <Link>lib\DynamicLinq.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Attach.cs">\r
+      <Link>Providers\Attach.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\CompositePK_Test.cs">\r
+      <Link>Providers\CompositePK_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DataLoadOptions_Test.cs">\r
+      <Link>Providers\DataLoadOptions_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Subquery.cs">\r
+      <Link>Providers\ReadTest_Subquery.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DynamicLinqTest.cs">\r
+      <Link>Providers\DynamicLinqTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteCommand_Test.cs">\r
+      <Link>Providers\ExecuteCommand_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteQuery_Test.cs">\r
+      <Link>Providers\ExecuteQuery_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Advanced.cs">\r
+      <Link>Providers\Linq_101_Samples\Advanced.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Conversion_Operators.cs">\r
+      <Link>Providers\Linq_101_Samples\Conversion_Operators.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs">\r
+      <Link>Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\ExsistIn_Any_All.cs">\r
+      <Link>Providers\Linq_101_Samples\ExsistIn_Any_All.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\GroupBy_Having.cs">\r
+      <Link>Providers\Linq_101_Samples\GroupBy_Having.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Inheritance.cs">\r
+      <Link>Providers\Linq_101_Samples\Inheritance.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Insert_Update_Delete.cs">\r
+      <Link>Providers\Linq_101_Samples\Insert_Update_Delete.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Join.cs">\r
+      <Link>Providers\Linq_101_Samples\Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs">\r
+      <Link>Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Null.cs">\r
+      <Link>Providers\Linq_101_Samples\Null.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object Loading.cs">\r
+      <Link>Providers\Linq_101_Samples\Object Loading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object_Identity.cs">\r
+      <Link>Providers\Linq_101_Samples\Object_Identity.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\OrderBy.cs">\r
+      <Link>Providers\Linq_101_Samples\OrderBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Paging.cs">\r
+      <Link>Providers\Linq_101_Samples\Paging.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Select_Distinct.cs">\r
+      <Link>Providers\Linq_101_Samples\Select_Distinct.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\String_Date_functions.cs">\r
+      <Link>Providers\Linq_101_Samples\String_Date_functions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Top_Bottom.cs">\r
+      <Link>Providers\Linq_101_Samples\Top_Bottom.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs">\r
+      <Link>Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Views.cs">\r
+      <Link>Providers\Linq_101_Samples\Views.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Where.cs">\r
+      <Link>Providers\Linq_101_Samples\Where.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_AnyCountFirst.cs">\r
+      <Link>Providers\ReadTests_AnyCountFirst.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Conversions.cs">\r
+      <Link>Providers\ReadTests_Conversions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_DateTimeFunctions.cs">\r
+      <Link>Providers\ReadTests_DateTimeFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_EntitySet.cs">\r
+      <Link>Providers\ReadTests_EntitySet.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Maths.cs">\r
+      <Link>Providers\ReadTests_Maths.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_ReferenceLoading.cs">\r
+      <Link>Providers\ReadTests_ReferenceLoading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_StringFunctions.cs">\r
+      <Link>Providers\ReadTests_StringFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Table.cs">\r
+      <Link>Providers\Table.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Transactions.cs">\r
+      <Link>Providers\Transactions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Properties\AssemblyInfo.cs">\r
+      <Link>Providers\Properties\AssemblyInfo.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest.cs">\r
+      <Link>Providers\ReadTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Join.cs">\r
+      <Link>Providers\ReadTests_Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Complex.cs">\r
+      <Link>Providers\ReadTest_Complex.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_GroupBy.cs">\r
+      <Link>Providers\ReadTest_GroupBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Operands.cs">\r
+      <Link>Providers\ReadTest_Operands.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\StoredProcTest.cs">\r
+      <Link>Providers\StoredProcTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\TestBase.cs">\r
+      <Link>Providers\TestBase.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\VerticalPartitioningTest.cs">\r
+      <Link>Providers\VerticalPartitioningTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest.cs">\r
+      <Link>Providers\WriteTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest_BulkInsert.cs">\r
+      <Link>Providers\WriteTest_BulkInsert.cs</Link>\r
+    </Compile>\r
+    <Compile Include="TestBase.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\101_readme.htm">\r
+      <Link>Providers\Linq_101_Samples\101_readme.htm</Link>\r
+    </None>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/MsSqlDataContextTest.cs b/mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/MsSqlDataContextTest.cs
new file mode 100644 (file)
index 0000000..ae1a666
--- /dev/null
@@ -0,0 +1,70 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Collections;\r
+using System.Collections.Generic;\r
+using System.Collections.ObjectModel;\r
+using System.Linq;\r
+using System.Reflection;\r
+\r
+using DbLinq.Data.Linq;\r
+using DbLinq.Data.Linq.Mapping;\r
+\r
+using DbLinq.Null;\r
+using NUnit.Framework;\r
+\r
+namespace DbLinqTest {\r
+\r
+    [TestFixture]\r
+    public class MsSqlDataContextTest : DataContextTestBase\r
+    {\r
+        static MsSqlDataContextTest()\r
+        {\r
+            // Make sure this assembly has a ref to DbLinq.SqlServer.dll.\r
+            var dummy = new DbLinq.SqlServer.SqlServerSqlProvider();\r
+        }\r
+\r
+        protected override DataContext CreateDataContext()\r
+        {\r
+            return new DataContext (new NullConnection (), new AttributeMappingSource ());\r
+        }\r
+\r
+        protected override string People(string firstName)\r
+        {\r
+            return\r
+                "SELECT [first_name], [last_name]\n" + \r
+                "FROM [people]\n" +\r
+                "WHERE [first_name] = '" + firstName + "'";\r
+        }\r
+\r
+        protected override string People(string firstName, string lastName)\r
+        {\r
+            return People(firstName) + " AND [last_name] = '" + lastName + "'";\r
+        }\r
+    }\r
+}\r
+\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/TestBase.cs b/mcs/class/System.Data.Linq/src/DbLinq.SqlServer/Test/TestBase.cs
new file mode 100755 (executable)
index 0000000..7fa3175
--- /dev/null
@@ -0,0 +1,54 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Data;\r
+\r
+namespace Test_NUnit\r
+{\r
+    public abstract partial class TestBase\r
+    {\r
+        public const StringComparison stringComparisonType = StringComparison.InvariantCulture;\r
+\r
+        public static IDbCommand CreateCommand (string sql, IDbConnection conn)\r
+        {\r
+            return new System.Data.SqlClient.SqlCommand(sql, (System.Data.SqlClient.SqlConnection) conn);\r
+        }\r
+\r
+        public static IDbConnection CreateConnection (string connectionString)\r
+        {\r
+            return new System.Data.SqlClient.SqlConnection(connectionString);\r
+        }\r
+\r
+#if !MONO_STRICT\r
+        public DbLinq.Vendor.IVendor CreateVendor()\r
+        {\r
+            return new DbLinq.SqlServer.SqlServerVendor();\r
+        }\r
+#endif\r
+    }\r
+}\r
index ba39de306bcd390a0c7cc1a274f9c06f9082ceb1..ab0a1e2f8d938e578e0a91657d783ba037f45568 100755 (executable)
@@ -19,7 +19,7 @@
     <DebugSymbols>true</DebugSymbols>\r
     <DebugType>full</DebugType>\r
     <Optimize>false</Optimize>\r
-    <OutputPath>bin\Debug\</OutputPath>\r
+    <OutputPath>..\..\build.dbg\</OutputPath>\r
     <DefineConstants>DEBUG;TRACE</DefineConstants>\r
     <ErrorReport>prompt</ErrorReport>\r
     <WarningLevel>4</WarningLevel>\r
@@ -76,4 +76,4 @@
   <Target Name="AfterBuild">\r
   </Target>\r
   -->\r
-</Project>
\ No newline at end of file
+</Project>\r
index ea05bf5bdeb1c7379013363c642d6c7ba0e95092..948b957f7889ccda5d267a5ee65621133b46a3fe 100644 (file)
@@ -203,14 +203,5 @@ namespace DbLinq.Sqlite
             }\r
             return outParamValues;\r
         }\r
-\r
-        override protected TypeToLoadData GetProviderTypeName()\r
-        {\r
-            return new TypeToLoadData\r
-            {\r
-                assemblyName = "System.Data.SQLite.DLL",\r
-                className = "SQLiteConnection",\r
-            };\r
-        }\r
     }\r
 }\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/DbLinq.Sqlite_test.csproj b/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/DbLinq.Sqlite_test.csproj
new file mode 100644 (file)
index 0000000..224380d
--- /dev/null
@@ -0,0 +1,230 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{3B13F240-D5E3-4BD4-BA4B-8CBDEE18207A}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>Test_NUnit</RootNamespace>\r
+    <AssemblyName>DbLinq.Sqlite_test</AssemblyName>\r
+    <StartupObject>\r
+    </StartupObject>\r
+    <FileUpgradeFlags>\r
+    </FileUpgradeFlags>\r
+    <OldToolsVersion>2.0</OldToolsVersion>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <UpgradeBackupLocation>\r
+    </UpgradeBackupLocation>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;SQLITE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>1</WarningLevel>\r
+    <NoWarn>\r
+    </NoWarn>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;SQLITE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="nunit.core, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.core.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data.SQLite, Version=1.0.49.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=AMD64">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\System.Data.SQLite.DLL</HintPath>\r
+    </Reference>\r
+    <Reference Include="System.Security" />\r
+    <Reference Include="System.Xml" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\..\..\examples\DbLinq.SQLite.Example\nwind\Northwind.cs">\r
+      <Link>nwind\Northwind.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\lib\DynamicLinq.cs">\r
+      <Link>lib\DynamicLinq.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Attach.cs">\r
+      <Link>Providers\Attach.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\CompositePK_Test.cs">\r
+      <Link>Providers\CompositePK_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DynamicLinqTest.cs">\r
+      <Link>Providers\DynamicLinqTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteCommand_Test.cs">\r
+      <Link>Providers\ExecuteCommand_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteQuery_Test.cs">\r
+      <Link>Providers\ExecuteQuery_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Advanced.cs">\r
+      <Link>Providers\Linq_101_Samples\Advanced.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Conversion_Operators.cs">\r
+      <Link>Providers\Linq_101_Samples\Conversion_Operators.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs">\r
+      <Link>Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\ExsistIn_Any_All.cs">\r
+      <Link>Providers\Linq_101_Samples\ExsistIn_Any_All.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\GroupBy_Having.cs">\r
+      <Link>Providers\Linq_101_Samples\GroupBy_Having.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Inheritance.cs">\r
+      <Link>Providers\Linq_101_Samples\Inheritance.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Insert_Update_Delete.cs">\r
+      <Link>Providers\Linq_101_Samples\Insert_Update_Delete.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Join.cs">\r
+      <Link>Providers\Linq_101_Samples\Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs">\r
+      <Link>Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Null.cs">\r
+      <Link>Providers\Linq_101_Samples\Null.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object Loading.cs">\r
+      <Link>Providers\Linq_101_Samples\Object Loading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object_Identity.cs">\r
+      <Link>Providers\Linq_101_Samples\Object_Identity.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\OrderBy.cs">\r
+      <Link>Providers\Linq_101_Samples\OrderBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Paging.cs">\r
+      <Link>Providers\Linq_101_Samples\Paging.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Select_Distinct.cs">\r
+      <Link>Providers\Linq_101_Samples\Select_Distinct.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\String_Date_functions.cs">\r
+      <Link>Providers\Linq_101_Samples\String_Date_functions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Top_Bottom.cs">\r
+      <Link>Providers\Linq_101_Samples\Top_Bottom.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs">\r
+      <Link>Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Views.cs">\r
+      <Link>Providers\Linq_101_Samples\Views.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Where.cs">\r
+      <Link>Providers\Linq_101_Samples\Where.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Program2SQLite.cs">\r
+      <Link>Providers\Program2SQLite.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Properties\AssemblyInfo.cs">\r
+      <Link>Providers\Properties\AssemblyInfo.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest.cs">\r
+      <Link>Providers\ReadTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_AnyCountFirst.cs">\r
+      <Link>Providers\ReadTests_AnyCountFirst.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Conversions.cs">\r
+      <Link>Providers\ReadTests_Conversions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_DateTimeFunctions.cs">\r
+      <Link>Providers\ReadTests_DateTimeFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_EntitySet.cs">\r
+      <Link>Providers\ReadTests_EntitySet.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Join.cs">\r
+      <Link>Providers\ReadTests_Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Maths.cs">\r
+      <Link>Providers\ReadTests_Maths.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_ReferenceLoading.cs">\r
+      <Link>Providers\ReadTests_ReferenceLoading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_StringFunctions.cs">\r
+      <Link>Providers\ReadTests_StringFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Complex.cs">\r
+      <Link>Providers\ReadTest_Complex.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_GroupBy.cs">\r
+      <Link>Providers\ReadTest_GroupBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Operands.cs">\r
+      <Link>Providers\ReadTest_Operands.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Subquery.cs">\r
+      <Link>Providers\ReadTest_Subquery.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\StoredProcTest.cs">\r
+      <Link>Providers\StoredProcTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Table.cs">\r
+      <Link>Providers\Table.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\TestBase.cs">\r
+      <Link>Providers\TestBase.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Transactions.cs">\r
+      <Link>Providers\Transactions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\VerticalPartitioningTest.cs">\r
+      <Link>Providers\VerticalPartitioningTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest.cs">\r
+      <Link>Providers\WriteTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest_BulkInsert.cs">\r
+      <Link>Providers\WriteTest_BulkInsert.cs</Link>\r
+    </Compile>\r
+    <Compile Include="TestBase.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\101_readme.htm">\r
+      <Link>Providers\Linq_101_Samples\101_readme.htm</Link>\r
+    </None>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\DbLinq.Sqlite.csproj">\r
+      <Project>{60B9AFA1-99B4-4DE6-80E1-80BBED1AC755}</Project>\r
+      <Name>DbLinq.Sqlite</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\..\DbLinq\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/DbLinq.Sqlite_test_mono.csproj b/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/DbLinq.Sqlite_test_mono.csproj
new file mode 100755 (executable)
index 0000000..730dc0b
--- /dev/null
@@ -0,0 +1,231 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{68267FB0-0771-4507-942F-395A1AE556FD}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>Test_NUnit</RootNamespace>\r
+    <AssemblyName>DbLinq.Sqlite_test_mono</AssemblyName>\r
+    <StartupObject>\r
+    </StartupObject>\r
+    <FileUpgradeFlags>\r
+    </FileUpgradeFlags>\r
+    <OldToolsVersion>2.0</OldToolsVersion>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <UpgradeBackupLocation>\r
+    </UpgradeBackupLocation>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;SQLITE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>1</WarningLevel>\r
+    <NoWarn>\r
+    </NoWarn>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;SQLITE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="Mono.Data.Sqlite, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\Mono.Data.Sqlite.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.core, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.core.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Security" />\r
+    <Reference Include="System.Xml" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\..\..\examples\DbLinq.SQLite.Example\nwind\Northwind.cs">\r
+      <Link>nwind\Northwind.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\lib\DynamicLinq.cs">\r
+      <Link>lib\DynamicLinq.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Attach.cs">\r
+      <Link>Providers\Attach.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\CompositePK_Test.cs">\r
+      <Link>Providers\CompositePK_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DynamicLinqTest.cs">\r
+      <Link>Providers\DynamicLinqTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteCommand_Test.cs">\r
+      <Link>Providers\ExecuteCommand_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteQuery_Test.cs">\r
+      <Link>Providers\ExecuteQuery_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Advanced.cs">\r
+      <Link>Providers\Linq_101_Samples\Advanced.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Conversion_Operators.cs">\r
+      <Link>Providers\Linq_101_Samples\Conversion_Operators.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs">\r
+      <Link>Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\ExsistIn_Any_All.cs">\r
+      <Link>Providers\Linq_101_Samples\ExsistIn_Any_All.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\GroupBy_Having.cs">\r
+      <Link>Providers\Linq_101_Samples\GroupBy_Having.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Inheritance.cs">\r
+      <Link>Providers\Linq_101_Samples\Inheritance.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Insert_Update_Delete.cs">\r
+      <Link>Providers\Linq_101_Samples\Insert_Update_Delete.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Join.cs">\r
+      <Link>Providers\Linq_101_Samples\Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs">\r
+      <Link>Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Null.cs">\r
+      <Link>Providers\Linq_101_Samples\Null.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object Loading.cs">\r
+      <Link>Providers\Linq_101_Samples\Object Loading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object_Identity.cs">\r
+      <Link>Providers\Linq_101_Samples\Object_Identity.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\OrderBy.cs">\r
+      <Link>Providers\Linq_101_Samples\OrderBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Paging.cs">\r
+      <Link>Providers\Linq_101_Samples\Paging.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Select_Distinct.cs">\r
+      <Link>Providers\Linq_101_Samples\Select_Distinct.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\String_Date_functions.cs">\r
+      <Link>Providers\Linq_101_Samples\String_Date_functions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Top_Bottom.cs">\r
+      <Link>Providers\Linq_101_Samples\Top_Bottom.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs">\r
+      <Link>Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Views.cs">\r
+      <Link>Providers\Linq_101_Samples\Views.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Where.cs">\r
+      <Link>Providers\Linq_101_Samples\Where.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Program2SQLite.cs">\r
+      <Link>Providers\Program2SQLite.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Properties\AssemblyInfo.cs">\r
+      <Link>Providers\Properties\AssemblyInfo.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest.cs">\r
+      <Link>Providers\ReadTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_AnyCountFirst.cs">\r
+      <Link>Providers\ReadTests_AnyCountFirst.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Conversions.cs">\r
+      <Link>Providers\ReadTests_Conversions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_DateTimeFunctions.cs">\r
+      <Link>Providers\ReadTests_DateTimeFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_EntitySet.cs">\r
+      <Link>Providers\ReadTests_EntitySet.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Join.cs">\r
+      <Link>Providers\ReadTests_Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Maths.cs">\r
+      <Link>Providers\ReadTests_Maths.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_ReferenceLoading.cs">\r
+      <Link>Providers\ReadTests_ReferenceLoading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_StringFunctions.cs">\r
+      <Link>Providers\ReadTests_StringFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Complex.cs">\r
+      <Link>Providers\ReadTest_Complex.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_GroupBy.cs">\r
+      <Link>Providers\ReadTest_GroupBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Operands.cs">\r
+      <Link>Providers\ReadTest_Operands.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Subquery.cs">\r
+      <Link>Providers\ReadTest_Subquery.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\StoredProcTest.cs">\r
+      <Link>Providers\StoredProcTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Table.cs">\r
+      <Link>Providers\Table.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\TestBase.cs">\r
+      <Link>Providers\TestBase.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Transactions.cs">\r
+      <Link>Providers\Transactions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\VerticalPartitioningTest.cs">\r
+      <Link>Providers\VerticalPartitioningTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest.cs">\r
+      <Link>Providers\WriteTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest_BulkInsert.cs">\r
+      <Link>Providers\WriteTest_BulkInsert.cs</Link>\r
+    </Compile>\r
+    <Compile Include="DirectDataContext.cs" />\r
+    <Compile Include="TestBase_mono.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\101_readme.htm">\r
+      <Link>Providers\Linq_101_Samples\101_readme.htm</Link>\r
+    </None>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\DbLinq.Sqlite.csproj">\r
+      <Project>{60B9AFA1-99B4-4DE6-80E1-80BBED1AC755}</Project>\r
+      <Name>DbLinq.Sqlite</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\..\DbLinq\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/DbLinq.Sqlite_test_mono_strict.csproj b/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/DbLinq.Sqlite_test_mono_strict.csproj
new file mode 100755 (executable)
index 0000000..4b17d66
--- /dev/null
@@ -0,0 +1,223 @@
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{06413209-2415-4541-8033-D5AAFF778A23}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>Test_NUnit</RootNamespace>\r
+    <AssemblyName>DbLinq.Sqlite_test_mono_strict</AssemblyName>\r
+    <StartupObject>\r
+    </StartupObject>\r
+    <FileUpgradeFlags>\r
+    </FileUpgradeFlags>\r
+    <OldToolsVersion>2.0</OldToolsVersion>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <UpgradeBackupLocation>\r
+    </UpgradeBackupLocation>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;SQLITE;MONO_STRICT</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>1</WarningLevel>\r
+    <NoWarn>\r
+    </NoWarn>\r
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;SQLITE;MONO_STRICT</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="Mono.Data.Sqlite, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\Mono.Data.Sqlite.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.core, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.core.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Security" />\r
+    <Reference Include="System.Xml" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\..\..\examples\DbLinq.SQLite.Example\nwind\Northwind.cs">\r
+      <Link>nwind\Northwind.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\..\lib\DynamicLinq.cs">\r
+      <Link>lib\DynamicLinq.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Attach.cs">\r
+      <Link>Providers\Attach.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\CompositePK_Test.cs">\r
+      <Link>Providers\CompositePK_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\DynamicLinqTest.cs">\r
+      <Link>Providers\DynamicLinqTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteCommand_Test.cs">\r
+      <Link>Providers\ExecuteCommand_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ExecuteQuery_Test.cs">\r
+      <Link>Providers\ExecuteQuery_Test.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Advanced.cs">\r
+      <Link>Providers\Linq_101_Samples\Advanced.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Conversion_Operators.cs">\r
+      <Link>Providers\Linq_101_Samples\Conversion_Operators.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs">\r
+      <Link>Providers\Linq_101_Samples\Count_Sum_Min_Max_Avg.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\ExsistIn_Any_All.cs">\r
+      <Link>Providers\Linq_101_Samples\ExsistIn_Any_All.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\GroupBy_Having.cs">\r
+      <Link>Providers\Linq_101_Samples\GroupBy_Having.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Inheritance.cs">\r
+      <Link>Providers\Linq_101_Samples\Inheritance.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Insert_Update_Delete.cs">\r
+      <Link>Providers\Linq_101_Samples\Insert_Update_Delete.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Join.cs">\r
+      <Link>Providers\Linq_101_Samples\Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs">\r
+      <Link>Providers\Linq_101_Samples\Linq101SamplesModifiedAttribute.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Null.cs">\r
+      <Link>Providers\Linq_101_Samples\Null.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object Loading.cs">\r
+      <Link>Providers\Linq_101_Samples\Object Loading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Object_Identity.cs">\r
+      <Link>Providers\Linq_101_Samples\Object_Identity.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\OrderBy.cs">\r
+      <Link>Providers\Linq_101_Samples\OrderBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Paging.cs">\r
+      <Link>Providers\Linq_101_Samples\Paging.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Select_Distinct.cs">\r
+      <Link>Providers\Linq_101_Samples\Select_Distinct.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\String_Date_functions.cs">\r
+      <Link>Providers\Linq_101_Samples\String_Date_functions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Top_Bottom.cs">\r
+      <Link>Providers\Linq_101_Samples\Top_Bottom.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs">\r
+      <Link>Providers\Linq_101_Samples\UnionAll_Union_Intersect.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Views.cs">\r
+      <Link>Providers\Linq_101_Samples\Views.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\Where.cs">\r
+      <Link>Providers\Linq_101_Samples\Where.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Program2SQLite.cs">\r
+      <Link>Providers\Program2SQLite.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Properties\AssemblyInfo.cs">\r
+      <Link>Providers\Properties\AssemblyInfo.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest.cs">\r
+      <Link>Providers\ReadTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_AnyCountFirst.cs">\r
+      <Link>Providers\ReadTests_AnyCountFirst.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Conversions.cs">\r
+      <Link>Providers\ReadTests_Conversions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_DateTimeFunctions.cs">\r
+      <Link>Providers\ReadTests_DateTimeFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_EntitySet.cs">\r
+      <Link>Providers\ReadTests_EntitySet.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Join.cs">\r
+      <Link>Providers\ReadTests_Join.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_Maths.cs">\r
+      <Link>Providers\ReadTests_Maths.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_ReferenceLoading.cs">\r
+      <Link>Providers\ReadTests_ReferenceLoading.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTests_StringFunctions.cs">\r
+      <Link>Providers\ReadTests_StringFunctions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Complex.cs">\r
+      <Link>Providers\ReadTest_Complex.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_GroupBy.cs">\r
+      <Link>Providers\ReadTest_GroupBy.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Operands.cs">\r
+      <Link>Providers\ReadTest_Operands.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\ReadTest_Subquery.cs">\r
+      <Link>Providers\ReadTest_Subquery.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\StoredProcTest.cs">\r
+      <Link>Providers\StoredProcTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Table.cs">\r
+      <Link>Providers\Table.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\TestBase.cs">\r
+      <Link>Providers\TestBase.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\Transactions.cs">\r
+      <Link>Providers\Transactions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\VerticalPartitioningTest.cs">\r
+      <Link>Providers\VerticalPartitioningTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest.cs">\r
+      <Link>Providers\WriteTest.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\..\DbLinq\Test\Providers\WriteTest_BulkInsert.cs">\r
+      <Link>Providers\WriteTest_BulkInsert.cs</Link>\r
+    </Compile>\r
+    <Compile Include="DirectDataContext.cs" />\r
+    <Compile Include="TestBase_mono.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq\Test\Providers\Linq_101_Samples\101_readme.htm">\r
+      <Link>Providers\Linq_101_Samples\101_readme.htm</Link>\r
+    </None>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/DirectDataContext.cs b/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/DirectDataContext.cs
new file mode 100755 (executable)
index 0000000..7eb086d
--- /dev/null
@@ -0,0 +1,62 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Linq;\r
+\r
+using Mono.Data.Sqlite;\r
+\r
+using nwind;\r
+\r
+#if MONO_STRICT\r
+using System.Data.Linq;\r
+#else\r
+using DbLinq.Data.Linq;\r
+#endif\r
+\r
+using NUnit.Framework;\r
+\r
+namespace Test_NUnit_Sqlite\r
+{\r
+    [TestFixture]\r
+    public class DirectDataContextTest\r
+    {\r
+        [Test]\r
+        public void CreateDataContext()\r
+        {\r
+            string connectionString = "DbLinqProvider=Sqlite;" + \r
+                "DbLinqConnectionType=Mono.Data.Sqlite.SqliteConnection, Mono.Data.Sqlite;" + \r
+                "Data Source=Northwind.db3";\r
+            var dc = new DataContext(connectionString);\r
+            Assert.AreEqual(typeof(SqliteConnection), dc.Connection.GetType());\r
+\r
+            var dcq = from p in dc.GetTable<Product>() where p.ProductName == "Pen" select p.ProductID;\r
+            var cmd = dc.GetCommand(dcq);\r
+            var dcc = dcq.ToList().Count;\r
+            Assert.AreEqual(dcc, 1);\r
+        }\r
+    }\r
+}
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/NorthwindSqlite.dbml b/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/NorthwindSqlite.dbml
new file mode 100644 (file)
index 0000000..d1e0f24
--- /dev/null
@@ -0,0 +1,145 @@
+<?xml version="1.0"?>\r
+<Database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Northwind" Class="Northwind" Provider="Sqlite" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">\r
+  <Table Name="main.Categories" Member="Categories">\r
+    <Type Name="Category">\r
+      <Column Name="CategoryID" Member="CategoryId" Storage="categoryId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="CategoryName" Member="CategoryName" Storage="categoryName" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="Description" Member="Description" Storage="description" Type="System.String" DbType="TEXT" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Picture" Member="Picture" Storage="picture" Type="System.Byte[]" DbType="BLOB" IsPrimaryKey="false" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="main.Customers" Member="Customers">\r
+    <Type Name="Customer">\r
+      <Association Name="fk_Orders_1" Member="Orders" Type="Order" ThisKey="CustomerId" OtherKey="CustomerId" />\r
+      <Column Name="Address" Member="Address" Storage="address" Type="System.String" DbType="VARCHAR(60)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="City" Member="City" Storage="city" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="CompanyName" Member="CompanyName" Storage="companyName" Type="System.String" DbType="VARCHAR(40)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="ContactName" Member="ContactName" Storage="contactName" Type="System.String" DbType="VARCHAR(30)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ContactTitle" Member="ContactTitle" Storage="contactTitle" Type="System.String" DbType="VARCHAR(30)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Country" Member="Country" Storage="country" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="CustomerID" Member="CustomerId" Storage="customerId" Type="System.String" DbType="VARCHAR(5)" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="Fax" Member="Fax" Storage="fax" Type="System.String" DbType="VARCHAR(24)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Phone" Member="Phone" Storage="phone" Type="System.String" DbType="VARCHAR(24)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="PostalCode" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="VARCHAR(10)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Region" Member="Region" Storage="region" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="main.Employees" Member="Employees">\r
+    <Type Name="Employee">\r
+      <Association Name="fk_EmployeeTerritories_1" Member="EmployeeTerritories" Type="EmployeeTerritory" ThisKey="EmployeeId" OtherKey="EmployeeId" />\r
+      <Association Name="fk_Employees_0" Member="ParentEmployee" Storage="fkEmployees0" Type="Employee" ThisKey="ReportsTo" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="fk_Employees_0" Member="Employees" Type="Employee" ThisKey="EmployeeId" OtherKey="ReportsTo" />\r
+      <Association Name="fk_Orders_0" Member="Orders" Type="Order" ThisKey="EmployeeId" OtherKey="EmployeeId" />\r
+      <Column Name="Address" Member="Address" Storage="address" Type="System.String" DbType="VARCHAR(60)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="BirthDate" Member="BirthDate" Storage="birthDate" Type="System.DateTime" DbType="DATETIME" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="City" Member="City" Storage="city" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Country" Member="Country" Storage="country" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="EmployeeID" Member="EmployeeId" Storage="employeeId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="FirstName" Member="FirstName" Storage="firstName" Type="System.String" DbType="VARCHAR(10)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="HireDate" Member="HireDate" Storage="hireDate" Type="System.DateTime" DbType="DATETIME" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="HomePhone" Member="HomePhone" Storage="homePhone" Type="System.String" DbType="VARCHAR(24)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="LastName" Member="LastName" Storage="lastName" Type="System.String" DbType="VARCHAR(20)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="Notes" Member="Notes" Storage="notes" Type="System.String" DbType="TEXT" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Photo" Member="Photo" Storage="photo" Type="System.Byte[]" DbType="BLOB" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="PostalCode" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="VARCHAR(10)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Region" Member="Region" Storage="region" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ReportsTo" Member="ReportsTo" Storage="reportsTo" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Title" Member="Title" Storage="title" Type="System.String" DbType="VARCHAR(30)" IsPrimaryKey="false" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="main.EmployeeTerritories" Member="EmployeeTerritories">\r
+    <Type Name="EmployeeTerritory">\r
+      <Association Name="fk_EmployeeTerritories_0" Member="Territory" Storage="fkEmployeeTerritories0" Type="Territory" ThisKey="TerritoryId" OtherKey="TerritoryId" IsForeignKey="true" />\r
+      <Association Name="fk_EmployeeTerritories_1" Member="Employee" Storage="fkEmployeeTerritories1" Type="Employee" ThisKey="EmployeeId" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Column Name="EmployeeID" Member="EmployeeId" Storage="employeeId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="TerritoryID" Member="TerritoryId" Storage="territoryId" Type="System.String" DbType="VARCHAR(20)" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="main.Orders" Member="Orders">\r
+    <Type Name="Order">\r
+      <Association Name="fk_Order Details_1" Member="OrderDetails" Type="OrderDetail" ThisKey="OrderId" OtherKey="OrderId" />\r
+      <Association Name="fk_Orders_0" Member="Employee" Storage="fkOrders0" Type="Employee" ThisKey="EmployeeId" OtherKey="EmployeeId" IsForeignKey="true" />\r
+      <Association Name="fk_Orders_1" Member="Customer" Storage="fkOrders1" Type="Customer" ThisKey="CustomerId" OtherKey="CustomerId" IsForeignKey="true" />\r
+      <Column Name="CustomerID" Member="CustomerId" Storage="customerId" Type="System.String" DbType="VARCHAR(5)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="EmployeeID" Member="EmployeeId" Storage="employeeId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Freight" Member="Freight" Storage="freight" Type="System.Decimal" DbType="DECIMAL" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="OrderDate" Member="OrderDate" Storage="orderDate" Type="System.DateTime" DbType="DATETIME" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="OrderID" Member="OrderId" Storage="orderId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="RequiredDate" Member="RequiredDate" Storage="requiredDate" Type="System.DateTime" DbType="DATETIME" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ShipAddress" Member="ShipAddress" Storage="shipAddress" Type="System.String" DbType="VARCHAR(60)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ShipCity" Member="ShipCity" Storage="shipCity" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ShipCountry" Member="ShipCountry" Storage="shipCountry" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ShipName" Member="ShipName" Storage="shipName" Type="System.String" DbType="VARCHAR(40)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ShippedDate" Member="ShippedDate" Storage="shippedDate" Type="System.DateTime" DbType="DATETIME" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ShipPostalCode" Member="ShipPostalCode" Storage="shipPostalCode" Type="System.String" DbType="VARCHAR(10)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ShipRegion" Member="ShipRegion" Storage="shipRegion" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ShipVia" Member="ShipVia" Storage="shipVia" Type="System.Int32" DbType="INT" IsPrimaryKey="false" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="main.Order Details" Member="OrderDetails">\r
+    <Type Name="OrderDetail">\r
+      <Association Name="fk_Order Details_0" Member="Product" Storage="fkOrderDetails0" Type="Product" ThisKey="ProductId" OtherKey="ProductId" IsForeignKey="true" />\r
+      <Association Name="fk_Order Details_1" Member="Order" Storage="fkOrderDetails1" Type="Order" ThisKey="OrderId" OtherKey="OrderId" IsForeignKey="true" />\r
+      <Column Name="Discount" Member="Discount" Storage="discount" Type="System.Single" DbType="FLOAT" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="OrderID" Member="OrderId" Storage="orderId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="ProductID" Member="ProductId" Storage="productId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="Quantity" Member="Quantity" Storage="quantity" Type="System.Int16" DbType="SMALLINT" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="UnitPrice" Member="UnitPrice" Storage="unitPrice" Type="System.Decimal" DbType="DECIMAL" IsPrimaryKey="false" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="main.Products" Member="Products">\r
+    <Type Name="Product">\r
+      <Association Name="fk_Order Details_0" Member="OrderDetails" Type="OrderDetail" ThisKey="ProductId" OtherKey="ProductId" />\r
+      <Association Name="fk_Products_0" Member="Supplier" Storage="fkProducts0" Type="Supplier" ThisKey="SupplierId" OtherKey="SupplierId" IsForeignKey="true" />\r
+      <Column Name="CategoryID" Member="CategoryId" Storage="categoryId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Discontinued" Member="Discontinued" Storage="discontinued" Type="System.Boolean" DbType="BIT" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="ProductID" Member="ProductId" Storage="productId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="true" CanBeNull="false" />\r
+      <Column Name="ProductName" Member="ProductName" Storage="productName" Type="System.String" DbType="VARCHAR(40)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="QuantityPerUnit" Member="QuantityPerUnit" Storage="quantityPerUnit" Type="System.String" DbType="VARCHAR(20)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ReorderLevel" Member="ReorderLevel" Storage="reorderLevel" Type="System.Int16" DbType="SMALLINT" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="SupplierID" Member="SupplierId" Storage="supplierId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="UnitPrice" Member="UnitPrice" Storage="unitPrice" Type="System.Decimal" DbType="DECIMAL" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="UnitsInStock" Member="UnitsInStock" Storage="unitsInStock" Type="System.Int16" DbType="SMALLINT" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="UnitsOnOrder" Member="UnitsOnOrder" Storage="unitsOnOrder" Type="System.Int16" DbType="SMALLINT" IsPrimaryKey="false" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="main.Regions" Member="Regions">\r
+    <Type Name="Region">\r
+      <Association Name="fk_Territories_0" Member="Territories" Type="Territory" ThisKey="RegionId" OtherKey="RegionId" />\r
+      <Column Name="RegionDescription" Member="RegionDescription" Storage="regionDescription" Type="System.String" DbType="VARCHAR(50)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="RegionID" Member="RegionId" Storage="regionId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="true" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="main.Shippers" Member="Shippers">\r
+    <Type Name="Shipper">\r
+      <Column Name="CompanyName" Member="CompanyName" Storage="companyName" Type="System.String" DbType="VARCHAR(40)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="Phone" Member="Phone" Storage="phone" Type="System.String" DbType="VARCHAR(24)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ShipperID" Member="ShipperId" Storage="shipperId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="main.Suppliers" Member="Suppliers">\r
+    <Type Name="Supplier">\r
+      <Association Name="fk_Products_0" Member="Products" Type="Product" ThisKey="SupplierId" OtherKey="SupplierId" />\r
+      <Column Name="Address" Member="Address" Storage="address" Type="System.String" DbType="VARCHAR(60)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="City" Member="City" Storage="city" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="CompanyName" Member="CompanyName" Storage="companyName" Type="System.String" DbType="VARCHAR(40)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="ContactName" Member="ContactName" Storage="contactName" Type="System.String" DbType="VARCHAR(30)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="ContactTitle" Member="ContactTitle" Storage="contactTitle" Type="System.String" DbType="VARCHAR(30)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Country" Member="Country" Storage="country" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Fax" Member="Fax" Storage="fax" Type="System.String" DbType="VARCHAR(24)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Phone" Member="Phone" Storage="phone" Type="System.String" DbType="VARCHAR(24)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="PostalCode" Member="PostalCode" Storage="postalCode" Type="System.String" DbType="VARCHAR(10)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="Region" Member="Region" Storage="region" Type="System.String" DbType="VARCHAR(15)" IsPrimaryKey="false" CanBeNull="true" />\r
+      <Column Name="SupplierID" Member="SupplierId" Storage="supplierId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="true" CanBeNull="false" />\r
+    </Type>\r
+  </Table>\r
+  <Table Name="main.Territories" Member="Territories">\r
+    <Type Name="Territory">\r
+      <Association Name="fk_EmployeeTerritories_0" Member="EmployeeTerritories" Type="EmployeeTerritory" ThisKey="TerritoryId" OtherKey="TerritoryId" />\r
+      <Association Name="fk_Territories_0" Member="Region" Storage="fkTerritories0" Type="Region" ThisKey="RegionId" OtherKey="RegionId" IsForeignKey="true" />\r
+      <Column Name="RegionID" Member="RegionId" Storage="regionId" Type="System.Int32" DbType="INTEGER" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="TerritoryDescription" Member="TerritoryDescription" Storage="territoryDescription" Type="System.String" DbType="VARCHAR(50)" IsPrimaryKey="false" CanBeNull="false" />\r
+      <Column Name="TerritoryID" Member="TerritoryId" Storage="territoryId" Type="System.String" DbType="VARCHAR(20)" IsPrimaryKey="true" CanBeNull="true" />\r
+    </Type>\r
+  </Table>\r
+</Database>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/TestBase.cs b/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/TestBase.cs
new file mode 100755 (executable)
index 0000000..28a5f01
--- /dev/null
@@ -0,0 +1,63 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Data;\r
+using System.Data.SQLite;\r
+using System.IO;\r
+\r
+namespace Test_NUnit\r
+{\r
+    public abstract partial class TestBase\r
+    {\r
+        static bool doRecreate = true;\r
+        public const StringComparison stringComparisonType = StringComparison.InvariantCulture;\r
+\r
+        static partial void CheckRecreateSqlite ()\r
+        {\r
+            if (doRecreate) {\r
+                File.Copy ("../src/Northwind.db3", "Northwind.db3", true);\r
+                doRecreate = false;\r
+            }\r
+        }\r
+\r
+        public static IDbCommand CreateCommand (string sql, IDbConnection conn)\r
+        {\r
+            return new SQLiteCommand(sql, (SQLiteConnection) conn);\r
+        }\r
+\r
+        public static IDbConnection CreateConnection (string connectionString)\r
+        {\r
+            return new SQLiteConnection(connectionString);\r
+        }\r
+\r
+        public DbLinq.Vendor.IVendor CreateVendor()\r
+        {\r
+            return new DbLinq.Sqlite.SqliteVendor();\r
+        }\r
+    }\r
+}\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/TestBase_mono.cs b/mcs/class/System.Data.Linq/src/DbLinq.Sqlite/Test/TestBase_mono.cs
new file mode 100755 (executable)
index 0000000..f61830d
--- /dev/null
@@ -0,0 +1,65 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne, Pascal Craponne\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Data;\r
+using Mono.Data.Sqlite;\r
+using System.IO;\r
+\r
+namespace Test_NUnit\r
+{\r
+    public abstract partial class TestBase\r
+    {\r
+        static bool doRecreate = true;\r
+        public const StringComparison stringComparisonType = StringComparison.InvariantCulture;\r
+\r
+        static partial void CheckRecreateSqlite ()\r
+        {\r
+            if (doRecreate) {\r
+                File.Copy ("../src/Northwind.db3", "Northwind.db3", true);\r
+                doRecreate = false;\r
+            }\r
+        }\r
+\r
+        public static IDbCommand CreateCommand (string sql, IDbConnection conn)\r
+        {\r
+            return new SqliteCommand(sql, (SqliteConnection) conn);\r
+        }\r
+\r
+        public static IDbConnection CreateConnection (string connectionString)\r
+        {\r
+            return new SqliteConnection(connectionString);\r
+        }\r
+\r
+#if !MONO_STRICT\r
+        public DbLinq.Vendor.IVendor CreateVendor()\r
+        {\r
+            return new DbLinq.Sqlite.SqliteVendor();\r
+        }\r
+#endif\r
+    }\r
+}\r
index 32c02734570324c3c7cff2b9729f123286e327ce..c48992d84e78a05e3347637edcb52f1b9bb5d7de 100644 (file)
@@ -64,29 +64,29 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.SQLite.Example", "..
 EndProject\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Mssql.Example", "..\examples\DbLinq.Mssql.Example\DbLinq.Mssql.Example.csproj", "{91F0C291-3E1C-4058-A52D-A780CFE92183}"\r
 EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinqTest", "..\tests\DbLinqTest\DbLinqTest.csproj", "{9F424D05-5F16-4C01-8C17-14EF22FF2174}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinqTest", "DbLinq\Test\DbLinqTest.csproj", "{9F424D05-5F16-4C01-8C17-14EF22FF2174}"\r
 EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_NUnit_Ingres", "..\tests\Test_NUnit\Test_NUnit_Ingres.csproj", "{858BAFF7-542F-4DBB-9C9B-57FCDE0DB7CE}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Ingres_test", "DbLinq.Ingres\Test\DbLinq.Ingres_test.csproj", "{858BAFF7-542F-4DBB-9C9B-57FCDE0DB7CE}"\r
 EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_NUnit_MsSql", "..\tests\Test_NUnit\Test_NUnit_MsSql.csproj", "{A348FBCE-2246-48FF-9862-35553B4B284C}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.SqlServer_test", "DbLinq.SqlServer\Test\DbLinq.SqlServer_test.csproj", "{A348FBCE-2246-48FF-9862-35553B4B284C}"\r
 EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_NUnit_MsSql_Strict", "..\tests\Test_NUnit\Test_NUnit_MsSql_Strict.csproj", "{D63B7158-6F23-4B35-9C39-871D37C9BAA6}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.SqlServer_test_strict", "DbLinq.SqlServer\Test\DbLinq.SqlServer_test_strict.csproj", "{D63B7158-6F23-4B35-9C39-871D37C9BAA6}"\r
 EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_NUnit_Mysql", "..\tests\Test_NUnit\Test_NUnit_Mysql.csproj", "{858BAFF7-542F-4DBB-9C9B-57FCDE4DB7CE}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.MySql_test", "DbLinq.MySql\Test\DbLinq.MySql_test.csproj", "{858BAFF7-542F-4DBB-9C9B-57FCDE4DB7CE}"\r
 EndProject\r
-Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Test_NUnit_Mysql_VB", "..\tests\Test_NUnit\Test_NUnit_Mysql_VB.vbproj", "{E6E31FB6-1559-44E1-AFA2-C11981A591FC}"\r
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DbLinq.MySql_test_vb", "DbLinq.MySql\DbLinq.MySql_test_vb.vbproj", "{E6E31FB6-1559-44E1-AFA2-C11981A591FC}"\r
 EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_NUnit_Ora", "..\tests\Test_NUnit\Test_NUnit_Ora.csproj", "{858BAFF7-533F-4DBB-9C9B-57FCDE4DB7CE}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Oracle_test", "DbLinq.Oracle\Test\DbLinq.Oracle_test.csproj", "{858BAFF7-533F-4DBB-9C9B-57FCDE4DB7CE}"\r
 EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_NUnit_OraODP", "..\tests\Test_NUnit\Test_NUnit_OraODP.csproj", "{858BAFE8-533F-4DBB-9C9B-57FCDE4DB7CE}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Oracle_test_odp", "DbLinq.Oracle\Test\DbLinq.Oracle_test_odp.csproj", "{858BAFE8-533F-4DBB-9C9B-57FCDE4DB7CE}"\r
 EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_NUnit_Pgsql", "..\tests\Test_NUnit\Test_NUnit_Pgsql.csproj", "{858BAFF7-542F-4DBB-940B-57333E4DB7CE}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.PostgreSql_test", "DbLinq.PostgreSql\Test\DbLinq.PostgreSql_test.csproj", "{858BAFF7-542F-4DBB-940B-57333E4DB7CE}"\r
 EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_NUnit_SQLite", "..\tests\Test_NUnit\Test_NUnit_SQLite.csproj", "{3B13F240-D5E3-4BD4-BA4B-8CBDEE18207A}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Sqlite_test", "DbLinq.Sqlite\Test\DbLinq.Sqlite_test.csproj", "{3B13F240-D5E3-4BD4-BA4B-8CBDEE18207A}"\r
 EndProject\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Firebird", "DbLinq.Firebird\DbLinq.Firebird.csproj", "{E1AB58E4-357E-4031-90F3-6AABA9623047}"\r
 EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_NUnit_Firebird", "..\tests\Test_NUnit\Test_NUnit_Firebird.csproj", "{6BC45425-283A-4D51-881A-D1E14A699D57}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Firebird_test", "DbLinq.Firebird\Test\DbLinq.Firebird_test.csproj", "{6BC45425-283A-4D51-881A-D1E14A699D57}"\r
 EndProject\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.FbSql.Example", "..\examples\DbLinq.FbSql.Example\DbLinq.FbSql.Example.csproj", "{EC942173-F034-47D3-9659-CD55BCCA2F89}"\r
 EndProject\r
index de96cc50e3202f0efa1d34d226b0f761409e8e71..21b6522b871e22d65ce7d22de98b3deafbb0bd90 100644 (file)
@@ -104,6 +104,9 @@ namespace DbLinq.Data.Linq
 \r
         public DataContext(IDbConnection connection)\r
         {\r
+            if (connection == null)\r
+                throw new ArgumentNullException("connection");\r
+\r
             Init(new DatabaseContext(connection), null, null);\r
         }\r
 \r
@@ -126,102 +129,90 @@ namespace DbLinq.Data.Linq
         [DbLinqToDo]\r
         public DataContext(string connectionString)\r
         {\r
-            #region DataContext connectionString ctor\r
+            IVendor ivendor = GetVendor(connectionString);\r
+\r
+            IDbConnection dbConnection = ivendor.CreateDbConnection(connectionString);\r
+            Init(new DatabaseContext(dbConnection), null, ivendor);\r
+\r
+        }\r
+\r
+        private IVendor GetVendor(string connectionString)\r
+        {\r
             if (connectionString == null)\r
                 throw new ArgumentNullException("connectionString");\r
 \r
+            Assembly assy;\r
+            string vendorClassToLoad;\r
+            GetVendorInfo(connectionString, out assy, out vendorClassToLoad);\r
+\r
+            var types =\r
+                from type in assy.GetTypes()\r
+                where type.Name.ToLowerInvariant() == vendorClassToLoad.ToLowerInvariant() &&\r
+                    type.GetInterfaces().Contains(typeof(IVendor)) &&\r
+                    type.GetConstructor(Type.EmptyTypes) != null\r
+                select type;\r
+            if (!types.Any())\r
+            {\r
+                throw new ArgumentException(string.Format("Found no IVendor class in assembly `{0}' named `{1}' having a default constructor.",\r
+                    assy.GetName().Name, vendorClassToLoad));\r
+            }\r
+            else if (types.Count() > 1)\r
+            {\r
+                throw new ArgumentException(string.Format("Found too many IVendor classes in assembly `{0}' named `{1}' having a default constructor.",\r
+                    assy.GetName().Name, vendorClassToLoad));\r
+            }\r
+            return (IVendor) Activator.CreateInstance(types.First());\r
+        }\r
+\r
+        private void GetVendorInfo(string connectionString, out Assembly assembly, out string typeName)\r
+        {\r
             System.Text.RegularExpressions.Regex reProvider\r
                 = new System.Text.RegularExpressions.Regex(@"DbLinqProvider=([\w\.]+)");\r
 \r
-            int startPos = connectionString.IndexOf("DbLinqProvider=");\r
-            string assemblyToLoad;\r
-            string vendorClassToLoad;\r
+            string assemblyFile = null;\r
+            string vendor;\r
             if (!reProvider.IsMatch(connectionString))\r
             {\r
-                assemblyToLoad = "DbLinq.SqlServer.dll";\r
-                vendorClassToLoad = "SqlServerVendor";\r
+                vendor       = "SqlServer";\r
+                assemblyFile = "DbLinq.SqlServer.dll";\r
             }\r
             else\r
             {\r
-                System.Text.RegularExpressions.Match match = reProvider.Match(connectionString);\r
-#if MONO_STRICT\r
-                //Pascal says on the forum: \r
-                //[in MONO] "all vendors are (will be) embedded in the System.Data.Linq assembly"\r
-                assemblyToLoad = "System.Data.Linq.dll";\r
-                vendorClassToLoad = match.Groups[1].Value; //eg. "MySql"\r
-#else\r
+                var match    = reProvider.Match(connectionString);\r
+                vendor       = match.Groups[1].Value;\r
+                assemblyFile = "DbLinq." + vendor + ".dll";\r
+\r
                 //plain DbLinq - non MONO: \r
                 //IVendor classes are in DLLs such as "DbLinq.MySql.dll"\r
-                assemblyToLoad = match.Groups[1].Value; //eg. assemblyToLoad="DbLinq.MySql.dll"\r
-                if (assemblyToLoad.Contains("."))\r
+                if (vendor.Contains("."))\r
                 {\r
                     //already fully qualified DLL name?\r
-                    throw new ArgumentException("Please provide a short name, such as 'MySql', not '" + assemblyToLoad + "'");\r
-                }\r
-                else\r
-                {\r
-                    //we were given short name, such as MySql\r
-                    vendorClassToLoad = assemblyToLoad + "Vendor"; //eg. MySqlVendor\r
-                    assemblyToLoad = "DbLinq." + assemblyToLoad + ".dll"; //eg. DbLinq.MySql.dll\r
+                    throw new ArgumentException("Please provide a short name, such as 'MySql', not '" + vendor + "'");\r
                 }\r
-#endif\r
+\r
                 //shorten: "DbLinqProvider=X;Server=Y" -> ";Server=Y"\r
-                string shortenedConnStr = reProvider.Replace(connectionString, "");\r
-                connectionString = shortenedConnStr;\r
+                connectionString = reProvider.Replace(connectionString, "");\r
             }\r
 \r
-            Assembly assy;\r
+            typeName = vendor + "Vendor";\r
+\r
             try\r
             {\r
 #if MONO_STRICT\r
-                assy = typeof (DataContext).Assembly; // System.Data.Linq.dll\r
+                assembly = typeof (DataContext).Assembly; // System.Data.Linq.dll\r
 #else\r
                 //TODO: check if DLL is already loaded?\r
-                assy = Assembly.LoadFrom(assemblyToLoad);\r
+                assembly = Assembly.LoadFrom(assemblyFile);\r
 #endif\r
             }\r
-            catch (Exception ex)\r
-            {\r
-                //TODO: add proper logging here\r
-                Console.WriteLine("DataContext ctor: Assembly load failed for " + assemblyToLoad + ": " + ex);\r
-                throw ex;\r
-            }\r
-\r
-            //find IDbProvider class in this assembly:\r
-            var ctors = (from mod in assy.GetModules()\r
-                         from cls in mod.GetTypes()\r
-                         where cls.GetInterfaces().Contains(typeof(IVendor))\r
-                            && cls.Name.ToLower() == vendorClassToLoad.ToLower()\r
-                         let ctorInfo = cls.GetConstructor(Type.EmptyTypes)\r
-                         where ctorInfo != null\r
-                         select ctorInfo).ToList();\r
-            if (ctors.Count == 0)\r
-            {\r
-                string msg = "Found no IVendor class in assembly " + assemblyToLoad + " having a string ctor";\r
-                throw new ArgumentException(msg);\r
-            }\r
-            else if (ctors.Count > 1)\r
-            {\r
-                string msg = "Found more than one IVendor class in assembly " + assemblyToLoad + " having a string ctor";\r
-                throw new ArgumentException(msg);\r
-            }\r
-            ConstructorInfo ctorInfo2 = ctors[0];\r
-\r
-            object ivendorObject;\r
-            try\r
-            {\r
-                ivendorObject = ctorInfo2.Invoke(new object[]{});\r
-            }\r
-            catch (Exception ex)\r
+            catch (Exception e)\r
             {\r
-                //TODO: add proper logging here\r
-                Console.WriteLine("DataContext ctor: Failed to invoke IVendor ctor " + ctorInfo2.Name + ": " + ex);\r
-                throw ex;\r
+                throw new ArgumentException(\r
+                        string.Format(\r
+                            "Unable to load the `{0}' DbLinq vendor within assembly `{1}'.",\r
+                            assemblyFile, vendor),\r
+                        "connectionString", e);\r
             }\r
-            IVendor ivendor = (IVendor)ivendorObject;\r
-            IDbConnection dbConnection = ivendor.CreateDbConnection(connectionString);\r
-            Init(new DatabaseContext(dbConnection), null, ivendor);\r
-            #endregion\r
         }\r
 \r
         private void Init(IDatabaseContext databaseContext, MappingSource mappingSource, IVendor vendor)\r
@@ -229,11 +220,16 @@ namespace DbLinq.Data.Linq
             if (databaseContext == null)\r
                 throw new ArgumentNullException("databaseContext");\r
 \r
+            // Yes, .NET throws an NRE for this.  Why it's not ArgumentNullException, I couldn't tell you.\r
+            if (databaseContext.Connection.ConnectionString == null)\r
+                throw new NullReferenceException();\r
+\r
             _VendorProvider = ObjectFactory.Get<IVendorProvider>();\r
-            if (vendor == null)\r
-                Vendor = _VendorProvider.FindVendorByProviderType(typeof(SqlClient.Sql2005Provider));\r
-            else\r
-                Vendor = vendor;\r
+            Vendor = vendor ?? \r
+                (databaseContext.Connection.ConnectionString != null\r
+                    ? GetVendor(databaseContext.Connection.ConnectionString)\r
+                    : null) ??\r
+                _VendorProvider.FindVendorByProviderType(typeof(SqlClient.Sql2005Provider));\r
 \r
             DatabaseContext = databaseContext;\r
 \r
@@ -716,13 +712,27 @@ namespace DbLinq.Data.Linq
         /// </summary>\r
         public IEnumerable<TResult> ExecuteQuery<TResult>(string query, params object[] parameters) where TResult : class, new()\r
         {\r
-            //GetTable<TResult>();\r
+            if (query == null)\r
+                throw new ArgumentNullException("query");\r
+\r
+            return CreateExecuteQueryEnumerable<TResult>(query, parameters);\r
+        }\r
+\r
+        private IEnumerable<TResult> CreateExecuteQueryEnumerable<TResult>(string query, object[] parameters)\r
+            where TResult : class, new()\r
+        {\r
             foreach (TResult result in ExecuteQuery(typeof(TResult), query, parameters))\r
                 yield return result;\r
         }\r
 \r
         public IEnumerable ExecuteQuery(Type elementType, string query, params object[] parameters)\r
         {\r
+            Console.WriteLine("# ExecuteQuery: query={0}", query != null ? query : "<null>");\r
+            if (elementType == null)\r
+                throw new ArgumentNullException("elementType");\r
+            if (query == null)\r
+                throw new ArgumentNullException("query");\r
+\r
             var queryContext = new QueryContext(this);\r
             var directQuery = QueryBuilder.GetDirectQuery(query, queryContext);\r
             return QueryRunner.ExecuteSelect(elementType, directQuery, parameters);\r
@@ -861,6 +871,9 @@ namespace DbLinq.Data.Linq
         [DbLinqToDo]\r
         public DbCommand GetCommand(IQueryable query)\r
         {\r
+            if (query == null)\r
+                throw new ArgumentNullException("query");\r
+\r
             var qp = query.Provider as QueryProvider;\r
             if (qp == null)\r
                 throw new InvalidOperationException();\r
index fa3224cec96381572d99e638b08a8770ebaeaa38..239b5f193d21c93186126e8a079aa0ee9722a760 100644 (file)
-#region MIT license
-// 
-// MIT license
-//
-// Copyright (c) 2007-2008 Jiri Moudry, Stefan Klinger
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-// 
-#endregion
-
-using System;
-using System.Collections.ObjectModel;
-using System.Data.Linq.Mapping;
-using System.Linq;
-using System.Reflection;
-using DbLinq.Util;
-using System.Collections.Generic;
-
-#if MONO_STRICT
-namespace System.Data.Linq.Mapping
-#else
-namespace DbLinq.Data.Linq.Mapping
-#endif
-{
-    internal class AttributedMetaAssociation : MetaAssociation
-    {
-               //Seperator used for key lists
-               private static readonly char[] STRING_SEPERATOR =  new[] { ',' };
-
-        public AttributedMetaAssociation(MemberInfo member, AssociationAttribute attribute, MetaDataMember metaDataMember)
-        {
-            _memberInfo = member;
-            _associationAttribute = attribute;
-            _thisMember = metaDataMember;
-            _otherMember = metaDataMember; // see https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=376669
-
-               SetupRelationship();
-        }
-
-               /// <summary>
-               /// This function sets up the relationship information based on the attribute <see cref="AttributedMetaModel"/>.
-               /// </summary>
-               private void SetupRelationship()
-               {
-                       //Get the association target type
-                       Type targetType = _memberInfo.GetFirstInnerReturnType();
-
-                       var metaModel = ThisMember.DeclaringType.Model as AttributedMetaModel;
-                       if (metaModel == null)
-                       {
-                               throw new InvalidOperationException("Internal Error: MetaModel is not a AttributedMetaModel");
-                       }
-
-                       MetaTable otherTable = metaModel.GetTable(targetType);
-
-                       //Setup "this key"
-                       _thisKey = GetKeys(_associationAttribute.ThisKey, ThisMember.DeclaringType);
-
-                       //Setup other key
-                       _otherKeys = GetKeys(_associationAttribute.OtherKey, otherTable.RowType);
-               }
-
-               /// <summary>
-               /// Returns a list of keys from the given meta type based on the key list string.
-               /// </summary>
-               /// <param name="keyListString">The key list string.</param>
-               /// <param name="parentType">Type of the parent.</param>
-               /// <returns></returns>
-               private static ReadOnlyCollection<MetaDataMember> GetKeys(string keyListString, MetaType parentType)
-               {
-                       if(keyListString != null)
-                       {
-                               var thisKeyList = new List<MetaDataMember>();
-
-                               string[] keyNames = keyListString.Split(STRING_SEPERATOR, StringSplitOptions.RemoveEmptyEntries);
-
-                               foreach (string rawKeyName in keyNames)
-                               {
-                                       string keyName = rawKeyName.Trim();
-
-                                       //TODO: maybe speed the lookup up
-                                       MetaDataMember key = (from dataMember in parentType.PersistentDataMembers
-                                                    where dataMember.Name == keyName
-                                                    select dataMember).SingleOrDefault();
-
-                                       if(key == null)
-                                       {
-                                               string errorMessage = string.Format("Could not find key member '{0}' of key '{1}' on type '{2}'. The key may be wrong or the field or property on '{2}' has changed names.",
-                                                       keyName, keyListString, parentType.Type.Name);
-
-                                               throw new InvalidOperationException(errorMessage);
-                                       }
-
-                                       thisKeyList.Add(key);
-                               }
-
-                               return new ReadOnlyCollection<MetaDataMember>(thisKeyList);
-                       }
-                       else //Key is the primary key of this table
-                       {
-                               return parentType.IdentityMembers;
-                       }
-               }
-
-        private AssociationAttribute _associationAttribute;
-        private MemberInfo _memberInfo;
-
-        public override bool DeleteOnNull
-        {
-            get { return _associationAttribute.DeleteOnNull; }
-        }
-
-        public override string DeleteRule
-        {
-            get { return _associationAttribute.DeleteRule; }
-        }
-
-        public override bool IsForeignKey
-        {
-            get { return _associationAttribute.IsForeignKey; }
-        }
-
-        public override bool IsMany
-        {
-            get
-            {
-                throw new System.NotImplementedException();
-            }
-        }
-
-        public override bool IsNullable
-        {
-            get { return _memberInfo.GetMemberType().CanBeNull(); }
-        }
-
-        public override bool IsUnique
-        {
-            get { return _associationAttribute.IsUnique; }
-        }
-
-        private ReadOnlyCollection<MetaDataMember> _otherKeys;
-        public override ReadOnlyCollection<MetaDataMember> OtherKey
-        {
-            get { return _otherKeys; }
-        }
-
-        public override bool OtherKeyIsPrimaryKey
-        {
-            get
-            {
-                foreach (var otherKey in OtherKey)
-                {
-                    if (!otherKey.IsPrimaryKey)
-                        return false;
-                }
-                return true;
-            }
-        }
-
-        private MetaDataMember _otherMember;
-        public override MetaDataMember OtherMember
-        {
-            get { return _otherMember; }
-        }
-
-        public override MetaType OtherType
-        {
-            get { return _otherMember.DeclaringType; }
-        }
-
-        private ReadOnlyCollection<MetaDataMember> _thisKey;
-        public override ReadOnlyCollection<MetaDataMember> ThisKey
-        {
-            get { return _thisKey; }
-        }
-
-        public override bool ThisKeyIsPrimaryKey
-        {
-            get
-            {
-                foreach (var thisKey in _thisKey)
-                {
-                    if (!thisKey.IsPrimaryKey)
-                        return false;
-                }
-                return true;
-            }
-        }
-
-        private MetaDataMember _thisMember;
-        public override MetaDataMember ThisMember
-        {
-            get { return _thisMember; }
-        }
-    }
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Stefan Klinger\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Collections.ObjectModel;\r
+using System.Data.Linq.Mapping;\r
+using System.Linq;\r
+using System.Reflection;\r
+using DbLinq.Util;\r
+using System.Collections.Generic;\r
+\r
+#if MONO_STRICT\r
+namespace System.Data.Linq.Mapping\r
+#else\r
+namespace DbLinq.Data.Linq.Mapping\r
+#endif\r
+{\r
+    internal class AttributedMetaAssociation : MetaAssociation\r
+    {\r
+               //Seperator used for key lists\r
+               private static readonly char[] STRING_SEPERATOR =  new[] { ',' };\r
+\r
+        public AttributedMetaAssociation(MemberInfo member, AssociationAttribute attribute, MetaDataMember metaDataMember)\r
+        {\r
+            _memberInfo = member;\r
+            _associationAttribute = attribute;\r
+            _thisMember = metaDataMember;\r
+            _otherMember = metaDataMember; // see https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=376669\r
+\r
+               SetupRelationship();\r
+        }\r
+\r
+               /// <summary>\r
+               /// This function sets up the relationship information based on the attribute <see cref="AttributedMetaModel"/>.\r
+               /// </summary>\r
+               private void SetupRelationship()\r
+               {\r
+                       //Get the association target type\r
+                       Type targetType = _memberInfo.GetFirstInnerReturnType();\r
+\r
+                       var metaModel = ThisMember.DeclaringType.Model as AttributedMetaModel;\r
+                       if (metaModel == null)\r
+                       {\r
+                               throw new InvalidOperationException("Internal Error: MetaModel is not a AttributedMetaModel");\r
+                       }\r
+\r
+                       MetaTable otherTable = metaModel.GetTable(targetType);\r
+\r
+                       //Setup "this key"\r
+                       _thisKey = GetKeys(_associationAttribute.ThisKey, ThisMember.DeclaringType);\r
+\r
+                       //Setup other key\r
+                       _otherKeys = GetKeys(_associationAttribute.OtherKey, otherTable.RowType);\r
+               }\r
+\r
+               /// <summary>\r
+               /// Returns a list of keys from the given meta type based on the key list string.\r
+               /// </summary>\r
+               /// <param name="keyListString">The key list string.</param>\r
+               /// <param name="parentType">Type of the parent.</param>\r
+               /// <returns></returns>\r
+               private static ReadOnlyCollection<MetaDataMember> GetKeys(string keyListString, MetaType parentType)\r
+               {\r
+                       if(keyListString != null)\r
+                       {\r
+                               var thisKeyList = new List<MetaDataMember>();\r
+\r
+                               string[] keyNames = keyListString.Split(STRING_SEPERATOR, StringSplitOptions.RemoveEmptyEntries);\r
+\r
+                               foreach (string rawKeyName in keyNames)\r
+                               {\r
+                                       string keyName = rawKeyName.Trim();\r
+\r
+                                       //TODO: maybe speed the lookup up\r
+                                       MetaDataMember key = (from dataMember in parentType.PersistentDataMembers\r
+                                                    where dataMember.Name == keyName\r
+                                                    select dataMember).SingleOrDefault();\r
+\r
+                                       if(key == null)\r
+                                       {\r
+                                               string errorMessage = string.Format("Could not find key member '{0}' of key '{1}' on type '{2}'. The key may be wrong or the field or property on '{2}' has changed names.",\r
+                                                       keyName, keyListString, parentType.Type.Name);\r
+\r
+                                               throw new InvalidOperationException(errorMessage);\r
+                                       }\r
+\r
+                                       thisKeyList.Add(key);\r
+                               }\r
+\r
+                               return new ReadOnlyCollection<MetaDataMember>(thisKeyList);\r
+                       }\r
+                       else //Key is the primary key of this table\r
+                       {\r
+                               return parentType.IdentityMembers;\r
+                       }\r
+               }\r
+\r
+        private AssociationAttribute _associationAttribute;\r
+        private MemberInfo _memberInfo;\r
+\r
+        public override bool DeleteOnNull\r
+        {\r
+            get { return _associationAttribute.DeleteOnNull; }\r
+        }\r
+\r
+        public override string DeleteRule\r
+        {\r
+            get { return _associationAttribute.DeleteRule; }\r
+        }\r
+\r
+        public override bool IsForeignKey\r
+        {\r
+            get { return _associationAttribute.IsForeignKey; }\r
+        }\r
+\r
+        public override bool IsMany\r
+        {\r
+            get\r
+            {\r
+                throw new System.NotImplementedException();\r
+            }\r
+        }\r
+\r
+        public override bool IsNullable\r
+        {\r
+            get { return _memberInfo.GetMemberType().CanBeNull(); }\r
+        }\r
+\r
+        public override bool IsUnique\r
+        {\r
+            get { return _associationAttribute.IsUnique; }\r
+        }\r
+\r
+        private ReadOnlyCollection<MetaDataMember> _otherKeys;\r
+        public override ReadOnlyCollection<MetaDataMember> OtherKey\r
+        {\r
+            get { return _otherKeys; }\r
+        }\r
+\r
+        public override bool OtherKeyIsPrimaryKey\r
+        {\r
+            get\r
+            {\r
+                foreach (var otherKey in OtherKey)\r
+                {\r
+                    if (!otherKey.IsPrimaryKey)\r
+                        return false;\r
+                }\r
+                return true;\r
+            }\r
+        }\r
+\r
+        private MetaDataMember _otherMember;\r
+        public override MetaDataMember OtherMember\r
+        {\r
+            get { return _otherMember; }\r
+        }\r
+\r
+        public override MetaType OtherType\r
+        {\r
+            get { return _otherMember.DeclaringType; }\r
+        }\r
+\r
+        private ReadOnlyCollection<MetaDataMember> _thisKey;\r
+        public override ReadOnlyCollection<MetaDataMember> ThisKey\r
+        {\r
+            get { return _thisKey; }\r
+        }\r
+\r
+        public override bool ThisKeyIsPrimaryKey\r
+        {\r
+            get\r
+            {\r
+                foreach (var thisKey in _thisKey)\r
+                {\r
+                    if (!thisKey.IsPrimaryKey)\r
+                        return false;\r
+                }\r
+                return true;\r
+            }\r
+        }\r
+\r
+        private MetaDataMember _thisMember;\r
+        public override MetaDataMember ThisMember\r
+        {\r
+            get { return _thisMember; }\r
+        }\r
+    }\r
 }
\ No newline at end of file
index 2dfc94f197ce7ce733dfd8621c5a3d3f85ca884a..9e1b134027c6ecb921bcf2ad8adfeabe2c912696 100644 (file)
-#region MIT license
-// 
-// MIT license
-//
-// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-// 
-#endregion
-
-using System.Collections;
-using System.Diagnostics;
-using System.Linq.Expressions;
-using System.Collections.Generic;
-
-#if MONO_STRICT
-namespace System.Data.Linq.Sugar
-#else
-namespace DbLinq.Data.Linq.Sugar
-#endif
-{
-    [DebuggerDisplay("ExpressionChain {Expressions.Count} Expression(s)")]
-    internal class ExpressionChain : IEnumerable<Expression>
-    {
-        public List<Expression> Expressions { get; private set; }
-
-        public ExpressionChain()
-        {
-            Expressions = new List<Expression>();
-        }
-
-        public ExpressionChain(IEnumerable<Expression> expressions)
-        {
-            Expressions = new List<Expression>(expressions);
-        }
-
-        public ExpressionChain(IEnumerable expressions)
-        {
-            Expressions = new List<Expression>();
-            foreach (Expression e in expressions)
-                Expressions.Add(e);
-        }
-
-        public ExpressionChain(IEnumerable expressions, Expression expression)
-            : this(expressions)
-        {
-            Expressions.Add(expression);
-        }
-
-        public ExpressionChain(IEnumerable expressions, IEnumerable<Expression> expressions2)
-            : this(expressions)
-        {
-            Expressions.AddRange(expressions2);
-        }
-
-        public override bool Equals(object obj)
-        {
-            var other = obj as ExpressionChain;
-            if (other == null)
-                return false;
-            if (Expressions.Count != other.Expressions.Count)
-                return false;
-            for (int expressionIndex = 0; expressionIndex < Expressions.Count; expressionIndex++)
-            {
-                if (!Expressions[expressionIndex].Equals(other.Expressions[expressionIndex]))
-                    return false;
-            }
-            return true;
-        }
-
-        public override int GetHashCode()
-        {
-            int hash = 0;
-            foreach (var expression in Expressions)
-            {
-                hash <<= 10;
-                hash ^= (int)expression.NodeType;
-                hash ^= expression.Type.GetHashCode();
-            }
-            return hash;
-        }
-
-        IEnumerator IEnumerable.GetEnumerator()
-        {
-            return ((IEnumerable<Expression>)this).GetEnumerator();
-        }
-
-        public IEnumerator<Expression> GetEnumerator()
-        {
-            return Expressions.GetEnumerator();
-        }
-    }
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System.Collections;\r
+using System.Diagnostics;\r
+using System.Linq.Expressions;\r
+using System.Collections.Generic;\r
+\r
+#if MONO_STRICT\r
+namespace System.Data.Linq.Sugar\r
+#else\r
+namespace DbLinq.Data.Linq.Sugar\r
+#endif\r
+{\r
+    [DebuggerDisplay("ExpressionChain {Expressions.Count} Expression(s)")]\r
+    internal class ExpressionChain : IEnumerable<Expression>\r
+    {\r
+        public List<Expression> Expressions { get; private set; }\r
+\r
+        public ExpressionChain()\r
+        {\r
+            Expressions = new List<Expression>();\r
+        }\r
+\r
+        public ExpressionChain(IEnumerable<Expression> expressions)\r
+        {\r
+            Expressions = new List<Expression>(expressions);\r
+        }\r
+\r
+        public ExpressionChain(IEnumerable expressions)\r
+        {\r
+            Expressions = new List<Expression>();\r
+            foreach (Expression e in expressions)\r
+                Expressions.Add(e);\r
+        }\r
+\r
+        public ExpressionChain(IEnumerable expressions, Expression expression)\r
+            : this(expressions)\r
+        {\r
+            Expressions.Add(expression);\r
+        }\r
+\r
+        public ExpressionChain(IEnumerable expressions, IEnumerable<Expression> expressions2)\r
+            : this(expressions)\r
+        {\r
+            Expressions.AddRange(expressions2);\r
+        }\r
+\r
+        public override bool Equals(object obj)\r
+        {\r
+            var other = obj as ExpressionChain;\r
+            if (other == null)\r
+                return false;\r
+            if (Expressions.Count != other.Expressions.Count)\r
+                return false;\r
+            for (int expressionIndex = 0; expressionIndex < Expressions.Count; expressionIndex++)\r
+            {\r
+                if (!Expressions[expressionIndex].Equals(other.Expressions[expressionIndex]))\r
+                    return false;\r
+            }\r
+            return true;\r
+        }\r
+\r
+        public override int GetHashCode()\r
+        {\r
+            int hash = 0;\r
+            foreach (var expression in Expressions)\r
+            {\r
+                hash <<= 10;\r
+                hash ^= (int)expression.NodeType;\r
+                hash ^= expression.Type.GetHashCode();\r
+            }\r
+            return hash;\r
+        }\r
+\r
+        IEnumerator IEnumerable.GetEnumerator()\r
+        {\r
+            return ((IEnumerable<Expression>)this).GetEnumerator();\r
+        }\r
+\r
+        public IEnumerator<Expression> GetEnumerator()\r
+        {\r
+            return Expressions.GetEnumerator();\r
+        }\r
+    }\r
 }
\ No newline at end of file
index 85e1ba67f7f7f732027841bf9e1a910dbf9ec5f6..591a2a304bcfc93f14b594aa7763e4335e68a116 100644 (file)
@@ -157,6 +157,11 @@ namespace DbLinq.Data.Linq.Sugar.Implementation
                 return (Expression<Func<IDataRecord, MappingContext, int, int?>>)((dataRecord, mappingContext, valueIndex)\r
                                                                                   => dataRecord.GetAsNullableNumeric<int>(valueIndex));\r
             }\r
+            if (simpleReturnType == typeof(System.Data.Linq.Binary))\r
+            {\r
+                return (Expression<Func<IDataRecord, MappingContext, int, byte[]>>)((dataRecord, mappingContext, valueIndex)\r
+                                                                                    => dataRecord.GetAsBytes(valueIndex));\r
+            }\r
             // for polymorphic types especially for ExecuteQuery<>()\r
             if (simpleReturnType == typeof(object))\r
             {\r
index 32a58a4e96d0dc078276e91d1f68439aca1059cb..d6a37f6e810ca790436396866586cf17ec6fad18 100644 (file)
@@ -149,19 +149,6 @@ namespace DbLinq.Data.Linq.Sugar.Implementation
             return AnalyzeCall(expression.Method, newParameters.ToList(), builderContext);\r
         }\r
 \r
-        enum DateTimePart\r
-        {\r
-            Yeah,\r
-            Month,\r
-            Day,\r
-            Hour,\r
-            Minute,\r
-            Second,\r
-            Millisecond,\r
-            Microsecond,\r
-            Nanosecond\r
-        }\r
-\r
         /// <summary>\r
         /// Analyzes method call\r
         /// </summary>\r
@@ -174,36 +161,6 @@ namespace DbLinq.Data.Linq.Sugar.Implementation
             // all methods to handle are listed here:\r
             // ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/fxref_system.core/html/2a54ce9d-76f2-81e2-95bb-59740c85386b.htm\r
             string methodName = method.Name;\r
-            if (method.DeclaringType == typeof(System.Data.Linq.SqlClient.SqlMethods))\r
-            {\r
-                switch (methodName)\r
-                {\r
-                    case "Like":\r
-                        if (parameters.Count == 3)\r
-                            throw new NotImplementedException();\r
-                        return AnalyzeLike(parameters[0], null, parameters[1], null, builderContext);\r
-                    case "DateDiffDay":\r
-                        return AnalyzeSqlDateDiff(DateTimePart.Day, parameters, builderContext);\r
-                    case "DateDiffHour":\r
-                        return AnalyzeSqlDateDiff(DateTimePart.Hour, parameters, builderContext);\r
-                    case "DateDiffMicrosecond":\r
-                        return AnalyzeSqlDateDiff(DateTimePart.Microsecond, parameters, builderContext);\r
-                    case "DateDiffMillisecond":\r
-                        return AnalyzeSqlDateDiff(DateTimePart.Millisecond, parameters, builderContext);\r
-                    case "DateDiffMinute":\r
-                        return AnalyzeSqlDateDiff(DateTimePart.Minute, parameters, builderContext);\r
-                    case "DateDiffMonth":\r
-                        return AnalyzeSqlDateDiff(DateTimePart.Month, parameters, builderContext);\r
-                    case "DateDiffNanosecond":\r
-                        return AnalyzeSqlDateDiff(DateTimePart.Nanosecond, parameters, builderContext);\r
-                    case "DateDiffSecond":\r
-                        return AnalyzeSqlDateDiff(DateTimePart.Second, parameters, builderContext);\r
-                    case "DateDiffYeah":\r
-                        return AnalyzeSqlDateDiff(DateTimePart.Yeah, parameters, builderContext);\r
-                    default:\r
-                        throw Error.BadArgument("S0134: Implement QueryMethod '{0}'", methodName);\r
-                }\r
-            }\r
             switch (methodName)\r
             {\r
                 case "Select":\r
@@ -311,51 +268,6 @@ namespace DbLinq.Data.Linq.Sugar.Implementation
             }\r
         }\r
 \r
-        static readonly MethodInfo dateTimeHasValue = typeof(DateTime?).GetProperty("HasValue").GetGetMethod();\r
-        static readonly MethodInfo dateTimeOffsetHasValue = typeof(DateTimeOffset?).GetProperty("HasValue").GetGetMethod();\r
-        static readonly MethodInfo dateTimeValue = typeof(DateTime?).GetProperty("Value").GetGetMethod();\r
-        static readonly MethodInfo dateTimeOffsetValue = typeof(DateTimeOffset?).GetProperty("Value").GetGetMethod();\r
-        static readonly ConstructorInfo nintctr = typeof(int?).GetConstructors()[0];\r
-\r
-        static MethodInfo GetPropertyGetterForDatePart(Type t, DateTimePart p)\r
-        {\r
-            switch (p)\r
-            {\r
-                case DateTimePart.Day: return t.GetProperty("Day").GetGetMethod();\r
-                case DateTimePart.Hour: return t.GetProperty("Hour").GetGetMethod();\r
-                case DateTimePart.Microsecond: return t.GetProperty("Microsecond").GetGetMethod();\r
-                case DateTimePart.Millisecond: return t.GetProperty("Millisecond").GetGetMethod();\r
-                case DateTimePart.Minute: return t.GetProperty("Minute").GetGetMethod();\r
-                case DateTimePart.Month: return t.GetProperty("Month").GetGetMethod();\r
-                case DateTimePart.Nanosecond: return t.GetProperty("Nanosecond").GetGetMethod();\r
-                case DateTimePart.Second: return t.GetProperty("Second").GetGetMethod();\r
-                case DateTimePart.Yeah: return t.GetProperty("Yeah").GetGetMethod();\r
-            }\r
-            throw new NotImplementedException();\r
-        }\r
-\r
-        private Expression AnalyzeSqlDateDiff(DateTimePart part, IList<Expression> parameters, BuilderContext builderContext)\r
-        {\r
-            Expression l = parameters[0], r = parameters [1];\r
-            Type valueType = l.Type.IsNullable() ? (l.Type == typeof(DateTime?) ? typeof(DateTime) : typeof(DateTimeOffset)) : l.Type;\r
-            MethodInfo p = GetPropertyGetterForDatePart(valueType, part);\r
-            if (l.Type.IsNullable())\r
-            {\r
-                MethodInfo hasValue = l.Type == typeof(DateTime?) ? dateTimeHasValue : dateTimeOffsetHasValue;\r
-                MethodInfo value = l.Type == typeof(DateTime?) ? dateTimeValue : dateTimeOffsetValue;\r
-//                Console.WriteLine("!!!! {0}, {1}", Expression.Subtract(Expression.Property(Expression.Property(l, value), p), Expression.Property(Expression.Property(r, value), p)).Type, Expression.New(int?).Type);\r
-                return Expression.Condition(\r
-                    Expression.AndAlso(Expression.Property(l, hasValue), Expression.Property(r, hasValue)),\r
-                    Expression.New (nintctr,\r
-                        Expression.Subtract(\r
-                            Expression.Property(Expression.Property (l, value), p),\r
-                            Expression.Property(Expression.Property (r, value), p))),\r
-                    Expression.Convert (Expression.Constant (null), typeof (int?)));\r
-            }\r
-            else\r
-                return Expression.Subtract(Expression.Property(l, p), Expression.Property(r, p));\r
-        }\r
-\r
         private Expression AnalyzeStringInsert(IList<Expression> parameters, BuilderContext builderContext)\r
         {\r
             var startIndexExpression = new StartIndexOffsetExpression(builderContext.QueryContext.DataContext.Vendor.SqlProvider.StringIndexStartsAtOne, parameters.ElementAt(1));\r
index a8ea6822c72e95072a9df54c3c15f337bcb8294e..cec425e5e2c9cfc2f1c2a9cf7f6776346dc86e62 100644 (file)
@@ -75,6 +75,12 @@ namespace DbLinq.Data.Linq.Sugar.Implementation
                 if (!(operand is ConstantExpression))\r
                     return expression;\r
             }\r
+            if (expression is ColumnExpression)\r
+                return expression;\r
+            if (expression is TableExpression)\r
+                return expression;\r
+            if (expression is ParameterExpression)\r
+                return expression;\r
             // now, we just simply return a constant with new value\r
             try\r
             {\r
index c18d5c8adbde8c4616f9493203fcfbbd5939d8b4..36954d2027a3b3213ef712e7e8cd04a93aeed7e6 100644 (file)
-#region MIT license
-// 
-// MIT license
-//
-// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-// 
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using DbLinq.Util;
-
-#if MONO_STRICT
-namespace System.Data.Linq.Sugar.Implementation
-#else
-namespace DbLinq.Data.Linq.Sugar.Implementation
-#endif
-{
-    internal class QueryCache : IQueryCache
-    {
-        private class TableReaderSignature
-        {
-            private readonly Type tableType;
-            private readonly IList<string> columns;
-
-            public override bool Equals(object obj)
-            {
-                var trs = (TableReaderSignature)obj;
-                if (trs.tableType != tableType)
-                    return false;
-                return trs.columns.SequenceEqual(columns);
-            }
-
-            public override int GetHashCode()
-            {
-                int hash = tableType.GetHashCode();
-                foreach (var column in columns)
-                    hash ^= column.GetHashCode();
-                return hash;
-            }
-
-            public TableReaderSignature(Type tableType, IList<string> columns)
-            {
-                this.tableType = tableType;
-                this.columns = columns;
-            }
-        }
-
-        private readonly IDictionary<ExpressionChain, SelectQuery> selectQueries = new Dictionary<ExpressionChain, SelectQuery>((IEqualityComparer<ExpressionChain>) new ExpressionChainEqualityComparer());
-        private readonly IDictionary<TableReaderSignature, Delegate> tableReaders = new Dictionary<TableReaderSignature, Delegate>();
-
-        public SelectQuery GetFromSelectCache(ExpressionChain expressions)
-        {
-            SelectQuery selectQuery;
-            lock (selectQueries)
-                selectQueries.TryGetValue(expressions, out selectQuery);
-            return selectQuery;
-        }
-
-        public void SetInSelectCache(ExpressionChain expressions, SelectQuery sqlSelectQuery)
-        {
-            lock (selectQueries)
-                selectQueries[expressions] = sqlSelectQuery;
-        }
-
-        public Delegate GetFromTableReaderCache(Type tableType, IList<string> columns)
-        {
-            var signature = new TableReaderSignature(tableType, columns);
-            Delegate tableReader;
-            lock (tableReaders)
-                tableReaders.TryGetValue(signature, out tableReader);
-            return tableReader;
-        }
-
-        public void SetInTableReaderCache(Type tableType, IList<string> columns, Delegate tableReader)
-        {
-            var signature = new TableReaderSignature(tableType, columns);
-            lock (tableReaders)
-                tableReaders[signature] = tableReader;
-        }
-    }
-}
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq;\r
+using DbLinq.Util;\r
+\r
+#if MONO_STRICT\r
+namespace System.Data.Linq.Sugar.Implementation\r
+#else\r
+namespace DbLinq.Data.Linq.Sugar.Implementation\r
+#endif\r
+{\r
+    internal class QueryCache : IQueryCache\r
+    {\r
+        private class TableReaderSignature\r
+        {\r
+            private readonly Type tableType;\r
+            private readonly IList<string> columns;\r
+\r
+            public override bool Equals(object obj)\r
+            {\r
+                var trs = (TableReaderSignature)obj;\r
+                if (trs.tableType != tableType)\r
+                    return false;\r
+                return trs.columns.SequenceEqual(columns);\r
+            }\r
+\r
+            public override int GetHashCode()\r
+            {\r
+                int hash = tableType.GetHashCode();\r
+                foreach (var column in columns)\r
+                    hash ^= column.GetHashCode();\r
+                return hash;\r
+            }\r
+\r
+            public TableReaderSignature(Type tableType, IList<string> columns)\r
+            {\r
+                this.tableType = tableType;\r
+                this.columns = columns;\r
+            }\r
+        }\r
+\r
+        private readonly IDictionary<ExpressionChain, SelectQuery> selectQueries = new Dictionary<ExpressionChain, SelectQuery>((IEqualityComparer<ExpressionChain>) new ExpressionChainEqualityComparer());\r
+        private readonly IDictionary<TableReaderSignature, Delegate> tableReaders = new Dictionary<TableReaderSignature, Delegate>();\r
+\r
+        public SelectQuery GetFromSelectCache(ExpressionChain expressions)\r
+        {\r
+            SelectQuery selectQuery;\r
+            lock (selectQueries)\r
+                selectQueries.TryGetValue(expressions, out selectQuery);\r
+            return selectQuery;\r
+        }\r
+\r
+        public void SetInSelectCache(ExpressionChain expressions, SelectQuery sqlSelectQuery)\r
+        {\r
+            lock (selectQueries)\r
+                selectQueries[expressions] = sqlSelectQuery;\r
+        }\r
+\r
+        public Delegate GetFromTableReaderCache(Type tableType, IList<string> columns)\r
+        {\r
+            var signature = new TableReaderSignature(tableType, columns);\r
+            Delegate tableReader;\r
+            lock (tableReaders)\r
+                tableReaders.TryGetValue(signature, out tableReader);\r
+            return tableReader;\r
+        }\r
+\r
+        public void SetInTableReaderCache(Type tableType, IList<string> columns, Delegate tableReader)\r
+        {\r
+            var signature = new TableReaderSignature(tableType, columns);\r
+            lock (tableReaders)\r
+                tableReaders[signature] = tableReader;\r
+        }\r
+    }\r
+}\r
index 3fe88f88b79e438a65919a403f0361f9e0ec544f..b83a71ddc09ec7e8624055d0f35598c94362ccec 100644 (file)
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.30729</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>DbLinq</RootNamespace>
-    <AssemblyName>DbLinq</AssemblyName>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SignAssembly>true</SignAssembly>
-    <AssemblyOriginatorKeyFile>..\DbLinq.snk</AssemblyOriginatorKeyFile>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\</OutputPath>
-    <DefineConstants>TRACE;DEBUG</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>..\..\build\</OutputPath>
-    <DefineConstants>TRACE;DEBUG</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug - Mono Strict|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\Debug - Mono Strict\</OutputPath>
-    <DefineConstants>TRACE;DEBUG</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
-    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
-    <ErrorReport>prompt</ErrorReport>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-    <Reference Include="Microsoft.VisualStudio.TeamSystem.Data.UnitTesting, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-    <Reference Include="System" />
-    <Reference Include="System.Configuration" />
-    <Reference Include="System.Core">
-      <RequiredTargetFramework>3.5</RequiredTargetFramework>
-    </Reference>
-    <Reference Include="System.Data" />
-    <Reference Include="System.Data.Linq">
-      <RequiredTargetFramework>3.5</RequiredTargetFramework>
-    </Reference>
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="..\DbLinq.ProductInfo.cs">
-      <Link>Properties\DbLinq.ProductInfo.cs</Link>
-    </Compile>
-    <Compile Include="Data\Linq\ChangeSet.cs" />
-    <Compile Include="Data\Linq\Database\IDatabaseContext.cs" />
-    <Compile Include="Data\Linq\Database\IDatabaseTransaction.cs" />
-    <Compile Include="Data\Linq\Database\ITransactionalCommand.cs" />
-    <Compile Include="Data\Linq\Database\Implementation\DatabaseConnection.cs" />
-    <Compile Include="Data\Linq\Database\Implementation\DatabaseContext.cs" />
-    <Compile Include="Data\Linq\Database\Implementation\DatabaseTransaction.cs" />
-    <Compile Include="Data\Linq\DataLoadOptions.cs" />
-    <Compile Include="Data\Linq\DBLinqExtendedAttributte.cs" />
-    <Compile Include="Data\Linq\EntityRef.cs" />
-    <Compile Include="Data\Linq\EntitySet.cs" />
-    <Compile Include="Data\Linq\Implementation\EntityTrack.cs" />
-    <Compile Include="Data\Linq\Implementation\EntityState.cs" />
-    <Compile Include="Data\Linq\Implementation\EntityTracker.cs" />
-    <Compile Include="Data\Linq\Implementation\VendorProvider.cs" />
-    <Compile Include="Data\Linq\ITable.Extended.cs" />
-    <Compile Include="Data\Linq\DataContext.cs" />
-    <Compile Include="Data\Linq\DataContext.Extended.cs" />
-    <Compile Include="Data\Linq\Identity\IdentityKey.cs" />
-    <Compile Include="Data\Linq\Identity\IIdentityProvider.cs" />
-    <Compile Include="Data\Linq\Identity\IIdentityReader.cs" />
-    <Compile Include="Data\Linq\Identity\IIdentityReaderFactory.cs" />
-    <Compile Include="Data\Linq\Identity\Implementation\IdentityProviderReader.cs" />
-    <Compile Include="Data\Linq\Identity\Implementation\IdentityReader.cs" />
-    <Compile Include="Data\Linq\Identity\Implementation\IdentityReaderFactory.cs" />
-    <Compile Include="Data\Linq\IMemberModificationHandler.cs" />
-    <Compile Include="Data\Linq\Implementation\MemberModificationHandler.cs" />
-    <Compile Include="Data\Linq\Implementation\QueryProvider.cs" />
-    <Compile Include="Data\Linq\ITable.cs" />
-    <Compile Include="Data\Linq\IVendorProvider.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedAbstractMetaDataMember.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedAssociationMetaDataMember.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedColumnMetaDataMember.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedMetaAssociation.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedMetaFunction.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedMetaModel.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedMetaTable.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedMetaType.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributeMappingSource.cs" />
-    <Compile Include="Data\Linq\Mapping\MappingContext.cs" />
-    <Compile Include="Data\Linq\SqlClient\FirebirdProvider.cs" />
-    <Compile Include="Data\Linq\SqlClient\Sql2005Provider.cs" />
-    <Compile Include="Data\Linq\SqlClient\Sql2000Provider.cs" />
-    <Compile Include="Data\Linq\SqlClient\SqlServerProvider.cs" />
-    <Compile Include="Data\Linq\SqlClient\SqliteProvider.cs" />
-    <Compile Include="Data\Linq\SqlClient\OracleProvider.cs" />
-    <Compile Include="Data\Linq\SqlClient\PostgreSqlProvider.cs" />
-    <Compile Include="Data\Linq\SqlClient\MySqlProvider.cs" />
-    <Compile Include="Data\Linq\SqlClient\IngresProvider.cs" />
-    <Compile Include="Data\Linq\Sql\SqlStatementBuilder.cs" />
-    <Compile Include="Data\Linq\Sql\SqlParameterPart.cs" />
-    <Compile Include="Data\Linq\Sql\SqlLiteralPart.cs" />
-    <Compile Include="Data\Linq\Sql\SqlPart.cs" />
-    <Compile Include="Data\Linq\Sql\SqlStatement.cs" />
-    <Compile Include="Data\Linq\Sugar\BuilderContext.cs" />
-    <Compile Include="Data\Linq\Database\Implementation\TransactionalCommand.cs" />
-    <Compile Include="Data\Linq\Sugar\DeleteQuery.cs" />
-    <Compile Include="Data\Linq\Sugar\DirectQuery.cs" />
-    <Compile Include="Data\Linq\Sugar\Error.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionChain.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\ExpressionMutatorExtensions.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\ExpressionMutatorFactory.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\BinaryExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ConditionalExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ConstantExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\IMemberBindingMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\InvocationExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\LambdaExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ListInitExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberAssignmentMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberBindingMutatorFactory.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberInitExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberListBindingMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberMemberBindingMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MethodCallExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\NewArrayExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\NewExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ParameterExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\TypeBinaryExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\UnaryExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionPrecedence.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionQuery.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\ColumnExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\EntitySetExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\ObjectInputParameterExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\ObjectOutputParameterExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\CustomExpressionType.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\InputParameterExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\GroupExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\IExecutableExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\IMutableExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\MetaTableExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\MutableExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\OperandsMutableExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\OrderByExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\SelectExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\SelectOperatorType.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\SpecialExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\SpecialExpressionType.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\StartIndexOffsetExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\TableExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\TableJoinType.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionTier.cs" />
-    <Compile Include="Data\Linq\Sugar\IDataMapper.cs" />
-    <Compile Include="Data\Linq\Sugar\IDataRecordReader.cs" />
-    <Compile Include="Data\Linq\Sugar\IExpressionDispatcher.cs" />
-    <Compile Include="Data\Linq\Sugar\IExpressionLanguageParser.cs" />
-    <Compile Include="Data\Linq\Sugar\IExpressionOptimizer.cs" />
-    <Compile Include="Data\Linq\Sugar\IExpressionQualifier.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\DataMapper.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\DataRecordReader.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionDispatcher.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionDispatcher.Registrar.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionLanguageParser.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionOptimizer.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionQualifier.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\QueryBuilder.Upsert.cs" />
-    <Compile Include="Data\Linq\Sugar\ParameterizedQuery.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Data\Linq\Sugar\UpsertQuery.cs" />
-    <Compile Include="Data\Linq\Sugar\IQueryCache.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\LineGrouping.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\PrequelAnalyzer.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\QueryBuilder.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\QueryCache.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\QueryRunner.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\SpecialExpressionTranslator.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\SqlBuilder.cs" />
-    <Compile Include="Data\Linq\Sugar\IPrequelAnalyzer.cs" />
-    <Compile Include="Data\Linq\Sugar\IQueryBuilder.cs" />
-    <Compile Include="Data\Linq\Sugar\IQueryRunner.cs" />
-    <Compile Include="Data\Linq\Sugar\ISpecialExpressionTranslator.cs" />
-    <Compile Include="Data\Linq\Sugar\ISqlBuilder.cs" />
-    <Compile Include="Data\Linq\Sugar\AbstractQuery.cs" />
-    <Compile Include="Data\Linq\Sugar\SelectQuery.cs" />
-    <Compile Include="Data\Linq\Sugar\QueryContext.cs" />
-    <Compile Include="Data\Linq\Table.cs" />
-    <Compile Include="Data\Linq\Table.Extended.cs" />
-    <Compile Include="DbLinqToDoAttribute.cs" />
-    <Compile Include="Factory\DbLinqAttribute.cs" />
-    <Compile Include="Factory\Implementation\AbstractObjectFactory.cs" />
-    <Compile Include="Factory\Implementation\ReflectionObjectFactory.cs" />
-    <Compile Include="Factory\IObjectFactory.cs" />
-    <Compile Include="Factory\ObjectFactory.cs" />
-    <Compile Include="Schema\Case.cs" />
-    <Compile Include="Schema\Dbml\Adapter\ArrayAdapter.cs" />
-    <Compile Include="Schema\Dbml\Adapter\CsvArrayAdapter.cs" />
-    <Compile Include="Schema\Dbml\Adapter\EnumType.cs" />
-    <Compile Include="Schema\Dbml\Adapter\INamedType.cs" />
-    <Compile Include="Schema\Dbml\Adapter\ISimpleList.cs" />
-    <Compile Include="Schema\Dbml\Adapter\SpecifiedPropertyUpdater.cs" />
-    <Compile Include="Schema\WordsExtraction.cs" />
-    <Compile Include="Schema\NameFormat.cs" />
-    <Compile Include="Schema\AssociationName.cs" />
-    <Compile Include="Schema\ColumnName.cs" />
-    <Compile Include="Schema\ParameterName.cs" />
-    <Compile Include="Schema\Dbml\DbmlSchema.Adapter.cs" />
-    <Compile Include="Schema\Dbml\DbmlSchema.cs">
-      <DependentUpon>DbmlSchema.xsd</DependentUpon>
-    </Compile>
-    <Compile Include="Schema\Dbml\DbmlSerializer.cs" />
-    <Compile Include="Schema\ProcedureName.cs" />
-    <Compile Include="Schema\Name.cs" />
-    <Compile Include="Schema\SchemaName.cs" />
-    <Compile Include="Schema\TableName.cs" />
-    <Compile Include="Util\DbmlExtensions.cs" />
-    <Compile Include="Util\ExpressionChainEqualityComparer.cs" />
-    <Compile Include="Util\ExpressionEqualityComparer.cs" />
-    <Compile Include="Util\Output.cs" />
-    <Compile Include="Util\IDataRecordExtensions.cs" />
-    <Compile Include="Util\IDataTypeExtensions.cs" />
-    <Compile Include="Language\ILanguages.cs" />
-    <Compile Include="Language\ILanguageWords.cs" />
-    <Compile Include="Util\IDbDataParameterExtensions.cs" />
-    <Compile Include="Util\OutputLevel.cs" />
-    <Compile Include="Util\ReflectionUtility.cs" />
-    <Compile Include="Util\TextWriterExtension.cs" />
-    <Compile Include="Util\LambdaComparer.cs" />
-    <Compile Include="Util\DataCommand.cs" />
-    <Compile Include="Schema\INameFormatter.cs" />
-    <Compile Include="Language\Implementation\AbstractEndPluralWords.cs" />
-    <Compile Include="Language\Implementation\AbstractWords.cs" />
-    <Compile Include="Language\Implementation\Languages.cs" />
-    <Compile Include="Language\Implementation\NoLanguageWords.cs" />
-    <Compile Include="Schema\Implementation\NameFormatter.cs" />
-    <Compile Include="Util\MemberInfoExtensions.cs" />
-    <Compile Include="Util\ReflectionExtensions.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\StringExtensions.cs" />
-    <Compile Include="Util\TypeConvert.cs" />
-    <Compile Include="Util\QuotesHelper.cs" />
-    <Compile Include="Util\ReferenceEqualityComparer.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Util\Page.cs" />
-    <Compile Include="Util\TypeExtensions.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Util\TypeLoader.cs" />
-    <Compile Include="Vendor\VendorAttribute.cs" />
-    <Compile Include="Vendor\IDataTableColumn.cs" />
-    <Compile Include="Vendor\IDataName.cs" />
-    <Compile Include="Vendor\IDataType.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.Name.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.Columns.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.DataTableColumn.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.DataName.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.ForeignKey.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.StoredProcedures.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.Tables.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.TypeMapping.cs" />
-    <Compile Include="Vendor\Implementation\Vendor.ProcedureResult.cs" />
-    <Compile Include="Vendor\INameAliases.cs" />
-    <Compile Include="Vendor\ISchemaLoader.cs" />
-    <Compile Include="Vendor\ISqlProvider.cs" />
-    <Compile Include="Vendor\IVendor.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.cs" />
-    <Compile Include="Vendor\Implementation\Vendor.cs" />
-    <Compile Include="Vendor\Implementation\SqlProvider.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="..\DbLinq.snk">
-      <Link>Properties\DbLinq.snk</Link>
-    </None>
-    <None Include="Schema\Dbml\DbmlSchema.bat" />
-    <EmbeddedResource Include="Schema\Dbml\DbmlSchema.xsd">
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Data\Linq\Sugar\Notes.txt" />
-    <Content Include="Data\Linq\ReadMe.txt" />
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <PropertyGroup>
-    <PreBuildEvent>
-    </PreBuildEvent>
-  </PropertyGroup>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>DbLinq</RootNamespace>\r
+    <AssemblyName>DbLinq</AssemblyName>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <FileAlignment>512</FileAlignment>\r
+    <SignAssembly>true</SignAssembly>\r
+    <AssemblyOriginatorKeyFile>..\DbLinq.snk</AssemblyOriginatorKeyFile>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug - Mono Strict|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <OutputPath>..\..\build.dbg.mono\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG</DefineConstants>\r
+    <DebugType>full</DebugType>\r
+    <PlatformTarget>AnyCPU</PlatformTarget>\r
+    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>\r
+    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>\r
+    <ErrorReport>prompt</ErrorReport>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
+    <Reference Include="Microsoft.VisualStudio.TeamSystem.Data.UnitTesting, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Configuration" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Xml" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\DbLinq.ProductInfo.cs">\r
+      <Link>Properties\DbLinq.ProductInfo.cs</Link>\r
+    </Compile>\r
+    <Compile Include="Data\Linq\ChangeSet.cs" />\r
+    <Compile Include="Data\Linq\Database\IDatabaseContext.cs" />\r
+    <Compile Include="Data\Linq\Database\IDatabaseTransaction.cs" />\r
+    <Compile Include="Data\Linq\Database\ITransactionalCommand.cs" />\r
+    <Compile Include="Data\Linq\Database\Implementation\DatabaseConnection.cs" />\r
+    <Compile Include="Data\Linq\Database\Implementation\DatabaseContext.cs" />\r
+    <Compile Include="Data\Linq\Database\Implementation\DatabaseTransaction.cs" />\r
+    <Compile Include="Data\Linq\DataLoadOptions.cs" />\r
+    <Compile Include="Data\Linq\DBLinqExtendedAttributte.cs" />\r
+    <Compile Include="Data\Linq\EntityRef.cs" />\r
+    <Compile Include="Data\Linq\EntitySet.cs" />\r
+    <Compile Include="Data\Linq\Implementation\EntityTrack.cs" />\r
+    <Compile Include="Data\Linq\Implementation\EntityState.cs" />\r
+    <Compile Include="Data\Linq\Implementation\EntityTracker.cs" />\r
+    <Compile Include="Data\Linq\Implementation\VendorProvider.cs" />\r
+    <Compile Include="Data\Linq\ITable.Extended.cs" />\r
+    <Compile Include="Data\Linq\DataContext.cs" />\r
+    <Compile Include="Data\Linq\DataContext.Extended.cs" />\r
+    <Compile Include="Data\Linq\Identity\IdentityKey.cs" />\r
+    <Compile Include="Data\Linq\Identity\IIdentityProvider.cs" />\r
+    <Compile Include="Data\Linq\Identity\IIdentityReader.cs" />\r
+    <Compile Include="Data\Linq\Identity\IIdentityReaderFactory.cs" />\r
+    <Compile Include="Data\Linq\Identity\Implementation\IdentityProviderReader.cs" />\r
+    <Compile Include="Data\Linq\Identity\Implementation\IdentityReader.cs" />\r
+    <Compile Include="Data\Linq\Identity\Implementation\IdentityReaderFactory.cs" />\r
+    <Compile Include="Data\Linq\IMemberModificationHandler.cs" />\r
+    <Compile Include="Data\Linq\Implementation\MemberModificationHandler.cs" />\r
+    <Compile Include="Data\Linq\Implementation\QueryProvider.cs" />\r
+    <Compile Include="Data\Linq\ITable.cs" />\r
+    <Compile Include="Data\Linq\IVendorProvider.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedAbstractMetaDataMember.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedAssociationMetaDataMember.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedColumnMetaDataMember.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedMetaAssociation.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedMetaFunction.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedMetaModel.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedMetaTable.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedMetaType.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributeMappingSource.cs" />\r
+    <Compile Include="Data\Linq\Mapping\MappingContext.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\FirebirdProvider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\Sql2005Provider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\Sql2000Provider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\SqlServerProvider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\SqliteProvider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\OracleProvider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\PostgreSqlProvider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\MySqlProvider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\IngresProvider.cs" />\r
+    <Compile Include="Data\Linq\Sql\SqlStatementBuilder.cs" />\r
+    <Compile Include="Data\Linq\Sql\SqlParameterPart.cs" />\r
+    <Compile Include="Data\Linq\Sql\SqlLiteralPart.cs" />\r
+    <Compile Include="Data\Linq\Sql\SqlPart.cs" />\r
+    <Compile Include="Data\Linq\Sql\SqlStatement.cs" />\r
+    <Compile Include="Data\Linq\Sugar\BuilderContext.cs" />\r
+    <Compile Include="Data\Linq\Database\Implementation\TransactionalCommand.cs" />\r
+    <Compile Include="Data\Linq\Sugar\DeleteQuery.cs" />\r
+    <Compile Include="Data\Linq\Sugar\DirectQuery.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Error.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionChain.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\ExpressionMutatorExtensions.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\ExpressionMutatorFactory.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\BinaryExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ConditionalExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ConstantExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\IMemberBindingMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\InvocationExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\LambdaExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ListInitExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberAssignmentMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberBindingMutatorFactory.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberInitExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberListBindingMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberMemberBindingMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MethodCallExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\NewArrayExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\NewExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ParameterExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\TypeBinaryExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\UnaryExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionPrecedence.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionQuery.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\ColumnExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\EntitySetExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\ObjectInputParameterExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\ObjectOutputParameterExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\CustomExpressionType.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\InputParameterExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\GroupExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\IExecutableExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\IMutableExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\MetaTableExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\MutableExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\OperandsMutableExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\OrderByExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\SelectExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\SelectOperatorType.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\SpecialExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\SpecialExpressionType.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\StartIndexOffsetExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\TableExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\TableJoinType.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionTier.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IDataMapper.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IDataRecordReader.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IExpressionDispatcher.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IExpressionLanguageParser.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IExpressionOptimizer.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IExpressionQualifier.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\DataMapper.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\DataRecordReader.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionDispatcher.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionDispatcher.Registrar.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionLanguageParser.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionOptimizer.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionQualifier.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\QueryBuilder.Upsert.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ParameterizedQuery.cs">\r
+      <SubType>Code</SubType>\r
+    </Compile>\r
+    <Compile Include="Data\Linq\Sugar\UpsertQuery.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IQueryCache.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\LineGrouping.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\PrequelAnalyzer.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\QueryBuilder.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\QueryCache.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\QueryRunner.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\SpecialExpressionTranslator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\SqlBuilder.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IPrequelAnalyzer.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IQueryBuilder.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IQueryRunner.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ISpecialExpressionTranslator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ISqlBuilder.cs" />\r
+    <Compile Include="Data\Linq\Sugar\AbstractQuery.cs" />\r
+    <Compile Include="Data\Linq\Sugar\SelectQuery.cs" />\r
+    <Compile Include="Data\Linq\Sugar\QueryContext.cs" />\r
+    <Compile Include="Data\Linq\Table.cs" />\r
+    <Compile Include="Data\Linq\Table.Extended.cs" />\r
+    <Compile Include="DbLinqToDoAttribute.cs" />\r
+    <Compile Include="Factory\DbLinqAttribute.cs" />\r
+    <Compile Include="Factory\Implementation\AbstractObjectFactory.cs" />\r
+    <Compile Include="Factory\Implementation\ReflectionObjectFactory.cs" />\r
+    <Compile Include="Factory\IObjectFactory.cs" />\r
+    <Compile Include="Factory\ObjectFactory.cs" />\r
+    <Compile Include="Schema\Case.cs" />\r
+    <Compile Include="Schema\Dbml\Adapter\ArrayAdapter.cs" />\r
+    <Compile Include="Schema\Dbml\Adapter\CsvArrayAdapter.cs" />\r
+    <Compile Include="Schema\Dbml\Adapter\EnumType.cs" />\r
+    <Compile Include="Schema\Dbml\Adapter\INamedType.cs" />\r
+    <Compile Include="Schema\Dbml\Adapter\ISimpleList.cs" />\r
+    <Compile Include="Schema\Dbml\Adapter\SpecifiedPropertyUpdater.cs" />\r
+    <Compile Include="Schema\WordsExtraction.cs" />\r
+    <Compile Include="Schema\NameFormat.cs" />\r
+    <Compile Include="Schema\AssociationName.cs" />\r
+    <Compile Include="Schema\ColumnName.cs" />\r
+    <Compile Include="Schema\ParameterName.cs" />\r
+    <Compile Include="Schema\Dbml\DbmlSchema.Adapter.cs" />\r
+    <Compile Include="Schema\Dbml\DbmlSchema.cs">\r
+      <DependentUpon>DbmlSchema.xsd</DependentUpon>\r
+    </Compile>\r
+    <Compile Include="Schema\Dbml\DbmlSerializer.cs" />\r
+    <Compile Include="Schema\ProcedureName.cs" />\r
+    <Compile Include="Schema\Name.cs" />\r
+    <Compile Include="Schema\SchemaName.cs" />\r
+    <Compile Include="Schema\TableName.cs" />\r
+    <Compile Include="Util\DbmlExtensions.cs" />\r
+    <Compile Include="Util\ExpressionChainEqualityComparer.cs" />\r
+    <Compile Include="Util\ExpressionEqualityComparer.cs" />\r
+    <Compile Include="Util\Output.cs" />\r
+    <Compile Include="Util\IDataRecordExtensions.cs" />\r
+    <Compile Include="Util\IDataTypeExtensions.cs" />\r
+    <Compile Include="Language\ILanguages.cs" />\r
+    <Compile Include="Language\ILanguageWords.cs" />\r
+    <Compile Include="Util\IDbDataParameterExtensions.cs" />\r
+    <Compile Include="Util\OutputLevel.cs" />\r
+    <Compile Include="Util\ReflectionUtility.cs" />\r
+    <Compile Include="Util\TextWriterExtension.cs" />\r
+    <Compile Include="Util\LambdaComparer.cs" />\r
+    <Compile Include="Util\DataCommand.cs" />\r
+    <Compile Include="Schema\INameFormatter.cs" />\r
+    <Compile Include="Language\Implementation\AbstractEndPluralWords.cs" />\r
+    <Compile Include="Language\Implementation\AbstractWords.cs" />\r
+    <Compile Include="Language\Implementation\Languages.cs" />\r
+    <Compile Include="Language\Implementation\NoLanguageWords.cs" />\r
+    <Compile Include="Schema\Implementation\NameFormatter.cs" />\r
+    <Compile Include="Util\MemberInfoExtensions.cs" />\r
+    <Compile Include="Util\ReflectionExtensions.cs">\r
+      <SubType>Code</SubType>\r
+    </Compile>\r
+    <Compile Include="Util\StringExtensions.cs" />\r
+    <Compile Include="Util\TypeConvert.cs" />\r
+    <Compile Include="Util\QuotesHelper.cs" />\r
+    <Compile Include="Util\ReferenceEqualityComparer.cs" />\r
+    <Compile Include="Properties\AssemblyInfo.cs" />\r
+    <Compile Include="Util\Page.cs" />\r
+    <Compile Include="Util\TypeExtensions.cs">\r
+      <SubType>Code</SubType>\r
+    </Compile>\r
+    <Compile Include="Util\TypeLoader.cs" />\r
+    <Compile Include="Vendor\VendorAttribute.cs" />\r
+    <Compile Include="Vendor\IDataTableColumn.cs" />\r
+    <Compile Include="Vendor\IDataName.cs" />\r
+    <Compile Include="Vendor\IDataType.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.Name.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.Columns.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.DataTableColumn.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.DataName.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.ForeignKey.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.StoredProcedures.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.Tables.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.TypeMapping.cs" />\r
+    <Compile Include="Vendor\Implementation\Vendor.ProcedureResult.cs" />\r
+    <Compile Include="Vendor\INameAliases.cs" />\r
+    <Compile Include="Vendor\ISchemaLoader.cs" />\r
+    <Compile Include="Vendor\ISqlProvider.cs" />\r
+    <Compile Include="Vendor\IVendor.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.cs" />\r
+    <Compile Include="Vendor\Implementation\Vendor.cs" />\r
+    <Compile Include="Vendor\Implementation\SqlProvider.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\DbLinq.snk">\r
+      <Link>Properties\DbLinq.snk</Link>\r
+    </None>\r
+    <None Include="Schema\Dbml\DbmlSchema.bat" />\r
+    <EmbeddedResource Include="Schema\Dbml\DbmlSchema.xsd">\r
+    </EmbeddedResource>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Content Include="Data\Linq\Sugar\Notes.txt" />\r
+    <Content Include="Data\Linq\ReadMe.txt" />\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+  <PropertyGroup>\r
+    <PreBuildEvent>\r
+    </PreBuildEvent>\r
+  </PropertyGroup>\r
 </Project>
\ No newline at end of file
index f213396960b8dcf55eb7ec8734184eb32ccff7ab..013941801cee2148a6f980061c369146c7ab2144 100644 (file)
@@ -60,6 +60,12 @@ using DbLinq.Factory;
 + "fe4a9cbb059374c0cc047aa28839fed7176761813caf6a2ffa0bff9afb50ead56dd3f56186a663"\r
 + "962a12b830c2a70eb70ec77823eb5750e5bdef9e01d097c30b5c5463c3d07d3472b58e4c02f279"\r
 + "2309259f")]\r
+[assembly: InternalsVisibleTo("DbLinq_test, PublicKey="\r
++ "0024000004800000940000000602000000240000525341310004000001000100c5753d8c47f400"\r
++ "83f549016a5711238ac8ec297605abccd3dc4b6d0f280b4764eb2cc58ec4e37831edad7e7a07b8"\r
++ "fe4a9cbb059374c0cc047aa28839fed7176761813caf6a2ffa0bff9afb50ead56dd3f56186a663"\r
++ "962a12b830c2a70eb70ec77823eb5750e5bdef9e01d097c30b5c5463c3d07d3472b58e4c02f279"\r
++ "2309259f")]\r
 \r
 \r
 // DbMetal and vendors use DbLinq's internal utilities\r
index 1aa61c3ec60bbdfb82d211ad85af4f3dbb2279ee..b9e7d3c2c677fe81845fcd1d4b155f26cf4916cf 100644 (file)
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>9.0.30729</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{97305421-3071-4175-AA3C-9A432CC28121}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>System</RootNamespace>
-    <AssemblyName>System.Data.Linq</AssemblyName>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <SignAssembly>true</SignAssembly>
-    <AssemblyOriginatorKeyFile>..\DbLinq.snk</AssemblyOriginatorKeyFile>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\</OutputPath>
-    <DefineConstants>TRACE;DEBUG;MONO_STRICT</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE;DEBUG;MONO_STRICT</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug - Mono Strict|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <OutputPath>bin\Debug - Mono Strict\</OutputPath>
-    <DefineConstants>TRACE;DEBUG;MONO_STRICT</DefineConstants>
-    <DebugType>full</DebugType>
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
-    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
-    <ErrorReport>prompt</ErrorReport>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-    <Reference Include="System" />
-    <Reference Include="System.Configuration" />
-    <Reference Include="System.Core">
-      <RequiredTargetFramework>3.5</RequiredTargetFramework>
-    </Reference>
-    <Reference Include="System.Data" />
-    <Reference Include="System.Xml" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="..\DbLinq.Firebird\FirebirdSqlProvider.cs">
-      <Link>Vendors\DbLinq.FirebirdSql\FirebirdSqlProvider.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.Firebird\FirebirdVendor.cs">
-      <Link>Vendors\DbLinq.FirebirdSql\FirebirdVendor.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.Ingres\IngresSqlProvider.cs">
-      <Link>Vendors\DbLinq.Ingres\IngresSqlProvider.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.Ingres\IngresVendor.cs">
-      <Link>Vendors\DbLinq.Ingres\IngresVendor.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.MySql\MySqlSqlProvider.cs">
-      <Link>Vendors\DbLinq.MySql\MySqlSqlProvider.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.MySql\MySqlVendor.cs">
-      <Link>Vendors\DbLinq.MySql\MySqlVendor.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.Oracle\OracleSqlProvider.cs">
-      <Link>Vendors\DbLinq.Oracle\OracleSqlProvider.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.Oracle\OracleVendor.cs">
-      <Link>Vendors\DbLinq.Oracle\OracleVendor.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.PostgreSql\PgsqlSqlProvider.cs">
-      <Link>Vendors\DbLinq.PostgreSql\PgsqlSqlProvider.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.PostgreSql\PgsqlVendor.cs">
-      <Link>Vendors\DbLinq.PostgreSql\PgsqlVendor.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.Sqlite\Schema\DataCommand.cs">
-      <Link>Vendors\DbLinq.Sqlite\DataCommand.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.Sqlite\SqliteSqlProvider.cs">
-      <Link>Vendors\DbLinq.Sqlite\SqliteSqlProvider.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.Sqlite\SqliteVendor.cs">
-      <Link>Vendors\DbLinq.Sqlite\SqliteVendor.cs</Link>
-    </Compile>
-    <Compile Include="Data\Linq\ChangeAction.cs" />
-    <Compile Include="Data\Linq\ChangeSet.cs" />
-    <Compile Include="Data\Linq\Database\IDatabaseContext.cs" />
-    <Compile Include="Data\Linq\Database\IDatabaseTransaction.cs" />
-    <Compile Include="Data\Linq\Database\Implementation\DatabaseConnection.cs" />
-    <Compile Include="Data\Linq\Database\Implementation\DatabaseContext.cs" />
-    <Compile Include="Data\Linq\Database\Implementation\DatabaseTransaction.cs" />
-    <Compile Include="Data\Linq\Database\Implementation\TransactionalCommand.cs" />
-    <Compile Include="Data\Linq\Database\ITransactionalCommand.cs" />
-    <Compile Include="Data\Linq\DataContext.cs" />
-    <Compile Include="Data\Linq\DataLoadOptions.cs" />
-    <Compile Include="Data\Linq\DBLinqExtendedAttributte.cs" />
-    <Compile Include="Data\Linq\EntitySet.cs" />
-    <Compile Include="Data\Linq\Identity\IdentityKey.cs" />
-    <Compile Include="Data\Linq\Identity\IIdentityProvider.cs" />
-    <Compile Include="Data\Linq\Identity\IIdentityReader.cs" />
-    <Compile Include="Data\Linq\Identity\IIdentityReaderFactory.cs" />
-    <Compile Include="Data\Linq\Identity\Implementation\IdentityProviderReader.cs" />
-    <Compile Include="Data\Linq\Identity\Implementation\IdentityReader.cs" />
-    <Compile Include="Data\Linq\Identity\Implementation\IdentityReaderFactory.cs" />
-    <Compile Include="Data\Linq\IExecuteResult.cs" />
-    <Compile Include="Data\Linq\IMemberModificationHandler.cs" />
-    <Compile Include="Data\Linq\Implementation\EntityState.cs" />
-    <Compile Include="Data\Linq\Implementation\EntityTrack.cs" />
-    <Compile Include="Data\Linq\Implementation\EntityTracker.cs" />
-    <Compile Include="Data\Linq\Implementation\MemberModificationHandler.cs" />
-    <Compile Include="Data\Linq\Implementation\QueryProvider.cs" />
-    <Compile Include="Data\Linq\Implementation\VendorProvider.cs" />
-    <Compile Include="Data\Linq\ITable.cs" />
-    <Compile Include="Data\Linq\IVendorProvider.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedAbstractMetaDataMember.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedAssociationMetaDataMember.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedColumnMetaDataMember.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedMetaAssociation.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedMetaFunction.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedMetaModel.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedMetaTable.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributedMetaType.cs" />
-    <Compile Include="Data\Linq\Mapping\AttributeMappingSource.cs" />
-    <Compile Include="Data\Linq\Mapping\MappingContext.cs" />
-    <Compile Include="Data\Linq\RefreshMode.cs" />
-    <Compile Include="Data\Linq\SqlClient\FirebirdProvider.cs" />
-    <Compile Include="Data\Linq\SqlClient\IngresProvider.cs" />
-    <Compile Include="Data\Linq\SqlClient\MySqlProvider.cs" />
-    <Compile Include="Data\Linq\SqlClient\OracleProvider.cs" />
-    <Compile Include="Data\Linq\SqlClient\PostgreSqlProvider.cs" />
-    <Compile Include="Data\Linq\SqlClient\SqliteProvider.cs" />
-    <Compile Include="Data\Linq\SqlClient\SqlServerProvider.cs" />
-    <Compile Include="Data\Linq\Sql\SqlLiteralPart.cs" />
-    <Compile Include="Data\Linq\Sql\SqlParameterPart.cs" />
-    <Compile Include="Data\Linq\Sql\SqlPart.cs" />
-    <Compile Include="Data\Linq\Sql\SqlStatement.cs" />
-    <Compile Include="Data\Linq\Sql\SqlStatementBuilder.cs" />
-    <Compile Include="Data\Linq\Sugar\BuilderContext.cs" />
-    <Compile Include="Data\Linq\Sugar\DeleteQuery.cs" />
-    <Compile Include="Data\Linq\Sugar\DirectQuery.cs" />
-    <Compile Include="Data\Linq\Sugar\Error.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionChain.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\ExpressionMutatorExtensions.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\ExpressionMutatorFactory.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\BinaryExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ConditionalExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ConstantExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\IMemberBindingMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\InvocationExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\LambdaExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ListInitExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberAssignmentMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberBindingMutatorFactory.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberInitExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberListBindingMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberMemberBindingMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MethodCallExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\NewArrayExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\NewExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ParameterExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\TypeBinaryExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\UnaryExpressionMutator.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionPrecedence.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionQuery.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\ColumnExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\EntitySetExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\ObjectInputParameterExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\ObjectOutputParameterExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\CustomExpressionType.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\InputParameterExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\GroupExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\IExecutableExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\IMutableExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\MetaTableExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\MutableExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\OperandsMutableExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\OrderByExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\SelectExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\SelectOperatorType.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\SpecialExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\SpecialExpressionType.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\StartIndexOffsetExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\TableExpression.cs" />
-    <Compile Include="Data\Linq\Sugar\Expressions\TableJoinType.cs" />
-    <Compile Include="Data\Linq\Sugar\ExpressionTier.cs" />
-    <Compile Include="Data\Linq\Sugar\IDataMapper.cs" />
-    <Compile Include="Data\Linq\Sugar\IDataRecordReader.cs" />
-    <Compile Include="Data\Linq\Sugar\IExpressionDispatcher.cs" />
-    <Compile Include="Data\Linq\Sugar\IExpressionLanguageParser.cs" />
-    <Compile Include="Data\Linq\Sugar\IExpressionOptimizer.cs" />
-    <Compile Include="Data\Linq\Sugar\IExpressionQualifier.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\DataMapper.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\DataRecordReader.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionDispatcher.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionDispatcher.Registrar.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionLanguageParser.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionOptimizer.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionQualifier.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\QueryBuilder.Upsert.cs" />
-    <Compile Include="Data\Linq\Sugar\IQueryCache.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\LineGrouping.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\PrequelAnalyzer.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\QueryBuilder.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\QueryCache.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\QueryRunner.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\SpecialExpressionTranslator.cs" />
-    <Compile Include="Data\Linq\Sugar\Implementation\SqlBuilder.cs" />
-    <Compile Include="Data\Linq\Sugar\IPrequelAnalyzer.cs" />
-    <Compile Include="Data\Linq\Sugar\IQueryBuilder.cs" />
-    <Compile Include="Data\Linq\Sugar\IQueryRunner.cs" />
-    <Compile Include="Data\Linq\Sugar\ISpecialExpressionTranslator.cs" />
-    <Compile Include="Data\Linq\Sugar\ISqlBuilder.cs" />
-    <Compile Include="Data\Linq\Sugar\AbstractQuery.cs" />
-    <Compile Include="Data\Linq\Sugar\ParameterizedQuery.cs" />
-    <Compile Include="Data\Linq\Sugar\SelectQuery.cs" />
-    <Compile Include="Data\Linq\Sugar\QueryContext.cs" />
-    <Compile Include="Data\Linq\Sugar\UpsertQuery.cs" />
-    <Compile Include="Data\Linq\Table.cs" />
-    <Compile Include="DbLinqToDoAttribute.cs" />
-    <Compile Include="Factory\DbLinqAttribute.cs" />
-    <Compile Include="Factory\Implementation\AbstractObjectFactory.cs" />
-    <Compile Include="Factory\Implementation\ReflectionObjectFactory.cs" />
-    <Compile Include="Factory\IObjectFactory.cs" />
-    <Compile Include="Factory\ObjectFactory.cs" />
-    <Compile Include="MonoTODOAttribute.cs" />
-    <Compile Include="Schema\Case.cs" />
-    <Compile Include="Schema\Dbml\Adapter\ArrayAdapter.cs" />
-    <Compile Include="Schema\Dbml\Adapter\CsvArrayAdapter.cs" />
-    <Compile Include="Schema\Dbml\Adapter\EnumType.cs" />
-    <Compile Include="Schema\Dbml\Adapter\INamedType.cs" />
-    <Compile Include="Schema\Dbml\Adapter\ISimpleList.cs" />
-    <Compile Include="Schema\Dbml\Adapter\SpecifiedPropertyUpdater.cs" />
-    <Compile Include="Schema\WordsExtraction.cs" />
-    <Compile Include="Schema\NameFormat.cs" />
-    <Compile Include="Schema\AssociationName.cs" />
-    <Compile Include="Schema\ColumnName.cs" />
-    <Compile Include="Schema\ParameterName.cs" />
-    <Compile Include="Schema\Dbml\DbmlSchema.Adapter.cs" />
-    <Compile Include="Schema\Dbml\DbmlSchema.cs">
-      <DependentUpon>DbmlSchema.xsd</DependentUpon>
-    </Compile>
-    <Compile Include="Schema\Dbml\DbmlSerializer.cs" />
-    <Compile Include="Schema\ProcedureName.cs" />
-    <Compile Include="Schema\Name.cs" />
-    <Compile Include="Schema\SchemaName.cs" />
-    <Compile Include="Schema\TableName.cs" />
-    <Compile Include="System.Data.Linq\Assembly\AssemblyInfo.cs" />
-    <Compile Include="System.Data.Linq\Binary.cs" />
-    <Compile Include="System.Data.Linq\ChangeConflictCollection.cs" />
-    <Compile Include="System.Data.Linq\ChangeConflictException.cs" />
-    <Compile Include="System.Data.Linq\CompiledQuery.cs" />
-    <Compile Include="System.Data.Linq\ConflictMode.cs" />
-    <Compile Include="System.Data.Linq\DBConvert.cs" />
-    <Compile Include="System.Data.Linq\DuplicateKeyException.cs" />
-    <Compile Include="Data\Linq\EntityRef.cs" />
-    <Compile Include="System.Data.Linq\ForeignKeyReferenceAlreadyHasValueException.cs" />
-    <Compile Include="System.Data.Linq\IFunctionResult.cs" />
-    <Compile Include="System.Data.Linq\IMultipleResults.cs" />
-    <Compile Include="System.Data.Linq\ISingleResult.cs" />
-    <Compile Include="System.Data.Linq\Link.cs" />
-    <Compile Include="System.Data.Linq\MemberChangeConflict.cs" />
-    <Compile Include="System.Data.Linq\ModifiedMemberInfo.cs" />
-    <Compile Include="System.Data.Linq\ObjectChangeConflict.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\AssociationAttribute.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\AutoSync.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\ColumnAttribute.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\DataAttribute.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\DatabaseAttribute.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\FunctionAttribute.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\InheritanceMappingAttribute.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MappingSource.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaAccessor.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaAccessor_2.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaAssociation.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaDataMember.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaFunction.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaModel.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaParameter.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaTable.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaType.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\ParameterAttribute.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\ProviderAttribute.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\ResultTypeAttribute.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\TableAttribute.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\UpdateCheck.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\XmlMappingSource.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.SqlClient.Implementation\ObjectMaterializer.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.SqlClient\Sql2000Provider.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.SqlClient\Sql2005Provider.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.SqlClient\SqlHelpers.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.SqlClient\SqlMethods.cs" />
-    <Compile Include="System.Data.Linq\System.Data.Linq.SqlClient\SqlProvider.cs" />
-    <Compile Include="Util\ExpressionChainEqualityComparer.cs" />
-    <Compile Include="Util\ExpressionEqualityComparer.cs" />
-    <Compile Include="Util\IDataRecordExtensions.cs" />
-    <Compile Include="Util\IDataTypeExtensions.cs" />
-    <Compile Include="Language\ILanguages.cs" />
-    <Compile Include="Language\ILanguageWords.cs" />
-    <Compile Include="Util\IDbDataParameterExtensions.cs" />
-    <Compile Include="Util\LambdaComparer.cs" />
-    <Compile Include="Util\DataCommand.cs" />
-    <Compile Include="Schema\INameFormatter.cs" />
-    <Compile Include="Language\Implementation\AbstractEndPluralWords.cs" />
-    <Compile Include="Language\Implementation\AbstractWords.cs" />
-    <Compile Include="Language\Implementation\Languages.cs" />
-    <Compile Include="Language\Implementation\NoLanguageWords.cs" />
-    <Compile Include="Schema\Implementation\NameFormatter.cs" />
-    <Compile Include="Util\MemberInfoExtensions.cs" />
-    <Compile Include="Util\ReflectionExtensions.cs" />
-    <Compile Include="Util\ReflectionUtility.cs" />
-    <Compile Include="Util\StringExtensions.cs" />
-    <Compile Include="Util\TextWriterExtension.cs" />
-    <Compile Include="Util\TypeConvert.cs" />
-    <Compile Include="Util\QuotesHelper.cs" />
-    <Compile Include="Util\ReferenceEqualityComparer.cs" />
-    <Compile Include="Util\Page.cs" />
-    <Compile Include="Util\TypeExtensions.cs" />
-    <Compile Include="Util\TypeLoader.cs" />
-    <Compile Include="Vendor\IDataTableColumn.cs" />
-    <Compile Include="Vendor\IDataName.cs" />
-    <Compile Include="Vendor\IDataType.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.Name.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.Columns.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.DataTableColumn.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.DataName.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.ForeignKey.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.StoredProcedures.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.Tables.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.TypeMapping.cs" />
-    <Compile Include="Vendor\Implementation\Vendor.ProcedureResult.cs" />
-    <Compile Include="Vendor\INameAliases.cs" />
-    <Compile Include="Vendor\ISchemaLoader.cs" />
-    <Compile Include="Vendor\ISqlProvider.cs" />
-    <Compile Include="Vendor\IVendor.cs" />
-    <Compile Include="Vendor\Implementation\SchemaLoader.cs" />
-    <Compile Include="Vendor\Implementation\Vendor.cs" />
-    <Compile Include="Vendor\Implementation\SqlProvider.cs" />
-    <Compile Include="..\DbLinq.SqlServer\SqlServerSqlProvider.cs">
-      <Link>Vendors\DbLinq.SqlServer\SqlServerSqlProvider.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.SqlServer\SqlServerTypeConversions.cs">
-      <Link>Vendors\DbLinq.SqlServer\SqlServerTypeConversions.cs</Link>
-    </Compile>
-    <Compile Include="..\DbLinq.SqlServer\SqlServerVendor.cs">
-      <Link>Vendors\DbLinq.SqlServer\SqlServerVendor.cs</Link>
-    </Compile>
-    <Compile Include="Vendor\VendorAttribute.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="..\DbLinq.snk">
-      <Link>Properties\DbLinq.snk</Link>
-    </None>
-    <None Include="Schema\Dbml\DbmlSchema.bat" />
-    <None Include="Schema\Dbml\DbmlSchema.bat" />
-    <None Include="System.Data.Linq\Assembly\ChangeLog" />
-    <None Include="System.Data.Linq\ChangeLog" />
-    <None Include="System.Data.Linq\Makefile" />
-    <None Include="System.Data.Linq\System.Data.Linq.dll.sources" />
-    <None Include="System.Data.Linq\System.Data.Linq.Mapping\ChangeLog" />
-    <None Include="System.Data.Linq\System.Data.Linq.SqlClient.Implementation\ChangeLog" />
-    <None Include="System.Data.Linq\System.Data.Linq.SqlClient\ChangeLog" />
-    <EmbeddedResource Include="Schema\Dbml\DbmlSchema.xsd">
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Data\Linq\Sugar\Notes.txt" />
-    <Content Include="Data\Linq\ReadMe.txt" />
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <PropertyGroup>
-    <PreBuildEvent>
-    </PreBuildEvent>
-  </PropertyGroup>
-</Project>
\ No newline at end of file
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{97305421-3071-4175-AA3C-9A432CC28121}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>System</RootNamespace>\r
+    <AssemblyName>System.Data.Linq</AssemblyName>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <FileAlignment>512</FileAlignment>\r
+    <SignAssembly>true</SignAssembly>\r
+    <AssemblyOriginatorKeyFile>..\DbLinq.snk</AssemblyOriginatorKeyFile>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;MONO_STRICT</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;MONO_STRICT</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug - Mono Strict|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <OutputPath>..\..\build.dbg.mono\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;MONO_STRICT</DefineConstants>\r
+    <DebugType>full</DebugType>\r
+    <PlatformTarget>AnyCPU</PlatformTarget>\r
+    <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>\r
+    <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>\r
+    <ErrorReport>prompt</ErrorReport>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Configuration" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Xml" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="..\DbLinq.Firebird\FirebirdSqlProvider.cs">\r
+      <Link>Vendors\DbLinq.FirebirdSql\FirebirdSqlProvider.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.Firebird\FirebirdVendor.cs">\r
+      <Link>Vendors\DbLinq.FirebirdSql\FirebirdVendor.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.Ingres\IngresSqlProvider.cs">\r
+      <Link>Vendors\DbLinq.Ingres\IngresSqlProvider.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.Ingres\IngresVendor.cs">\r
+      <Link>Vendors\DbLinq.Ingres\IngresVendor.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.MySql\MySqlSqlProvider.cs">\r
+      <Link>Vendors\DbLinq.MySql\MySqlSqlProvider.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.MySql\MySqlVendor.cs">\r
+      <Link>Vendors\DbLinq.MySql\MySqlVendor.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.Oracle\OracleSqlProvider.cs">\r
+      <Link>Vendors\DbLinq.Oracle\OracleSqlProvider.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.Oracle\OracleVendor.cs">\r
+      <Link>Vendors\DbLinq.Oracle\OracleVendor.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.PostgreSql\PgsqlSqlProvider.cs">\r
+      <Link>Vendors\DbLinq.PostgreSql\PgsqlSqlProvider.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.PostgreSql\PgsqlVendor.cs">\r
+      <Link>Vendors\DbLinq.PostgreSql\PgsqlVendor.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.Sqlite\Schema\DataCommand.cs">\r
+      <Link>Vendors\DbLinq.Sqlite\DataCommand.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.Sqlite\SqliteSqlProvider.cs">\r
+      <Link>Vendors\DbLinq.Sqlite\SqliteSqlProvider.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.Sqlite\SqliteVendor.cs">\r
+      <Link>Vendors\DbLinq.Sqlite\SqliteVendor.cs</Link>\r
+    </Compile>\r
+    <Compile Include="Data\Linq\ChangeAction.cs" />\r
+    <Compile Include="Data\Linq\ChangeSet.cs" />\r
+    <Compile Include="Data\Linq\Database\IDatabaseContext.cs" />\r
+    <Compile Include="Data\Linq\Database\IDatabaseTransaction.cs" />\r
+    <Compile Include="Data\Linq\Database\Implementation\DatabaseConnection.cs" />\r
+    <Compile Include="Data\Linq\Database\Implementation\DatabaseContext.cs" />\r
+    <Compile Include="Data\Linq\Database\Implementation\DatabaseTransaction.cs" />\r
+    <Compile Include="Data\Linq\Database\Implementation\TransactionalCommand.cs" />\r
+    <Compile Include="Data\Linq\Database\ITransactionalCommand.cs" />\r
+    <Compile Include="Data\Linq\DataContext.cs" />\r
+    <Compile Include="Data\Linq\DataLoadOptions.cs" />\r
+    <Compile Include="Data\Linq\DBLinqExtendedAttributte.cs" />\r
+    <Compile Include="Data\Linq\EntitySet.cs" />\r
+    <Compile Include="Data\Linq\Identity\IdentityKey.cs" />\r
+    <Compile Include="Data\Linq\Identity\IIdentityProvider.cs" />\r
+    <Compile Include="Data\Linq\Identity\IIdentityReader.cs" />\r
+    <Compile Include="Data\Linq\Identity\IIdentityReaderFactory.cs" />\r
+    <Compile Include="Data\Linq\Identity\Implementation\IdentityProviderReader.cs" />\r
+    <Compile Include="Data\Linq\Identity\Implementation\IdentityReader.cs" />\r
+    <Compile Include="Data\Linq\Identity\Implementation\IdentityReaderFactory.cs" />\r
+    <Compile Include="Data\Linq\IExecuteResult.cs" />\r
+    <Compile Include="Data\Linq\IMemberModificationHandler.cs" />\r
+    <Compile Include="Data\Linq\Implementation\EntityState.cs" />\r
+    <Compile Include="Data\Linq\Implementation\EntityTrack.cs" />\r
+    <Compile Include="Data\Linq\Implementation\EntityTracker.cs" />\r
+    <Compile Include="Data\Linq\Implementation\MemberModificationHandler.cs" />\r
+    <Compile Include="Data\Linq\Implementation\QueryProvider.cs" />\r
+    <Compile Include="Data\Linq\Implementation\VendorProvider.cs" />\r
+    <Compile Include="Data\Linq\ITable.cs" />\r
+    <Compile Include="Data\Linq\IVendorProvider.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedAbstractMetaDataMember.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedAssociationMetaDataMember.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedColumnMetaDataMember.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedMetaAssociation.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedMetaFunction.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedMetaModel.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedMetaTable.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributedMetaType.cs" />\r
+    <Compile Include="Data\Linq\Mapping\AttributeMappingSource.cs" />\r
+    <Compile Include="Data\Linq\Mapping\MappingContext.cs" />\r
+    <Compile Include="Data\Linq\RefreshMode.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\FirebirdProvider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\IngresProvider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\MySqlProvider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\OracleProvider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\PostgreSqlProvider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\SqliteProvider.cs" />\r
+    <Compile Include="Data\Linq\SqlClient\SqlServerProvider.cs" />\r
+    <Compile Include="Data\Linq\Sql\SqlLiteralPart.cs" />\r
+    <Compile Include="Data\Linq\Sql\SqlParameterPart.cs" />\r
+    <Compile Include="Data\Linq\Sql\SqlPart.cs" />\r
+    <Compile Include="Data\Linq\Sql\SqlStatement.cs" />\r
+    <Compile Include="Data\Linq\Sql\SqlStatementBuilder.cs" />\r
+    <Compile Include="Data\Linq\Sugar\BuilderContext.cs" />\r
+    <Compile Include="Data\Linq\Sugar\DeleteQuery.cs" />\r
+    <Compile Include="Data\Linq\Sugar\DirectQuery.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Error.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionChain.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\ExpressionMutatorExtensions.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\ExpressionMutatorFactory.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\BinaryExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ConditionalExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ConstantExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\IMemberBindingMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\InvocationExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\LambdaExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ListInitExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberAssignmentMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberBindingMutatorFactory.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberInitExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberListBindingMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MemberMemberBindingMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\MethodCallExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\NewArrayExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\NewExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\ParameterExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\TypeBinaryExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionMutator\Implementation\UnaryExpressionMutator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionPrecedence.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionQuery.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\ColumnExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\EntitySetExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\ObjectInputParameterExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\ObjectOutputParameterExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\CustomExpressionType.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\InputParameterExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\GroupExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\IExecutableExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\IMutableExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\MetaTableExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\MutableExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\OperandsMutableExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\OrderByExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\SelectExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\SelectOperatorType.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\SpecialExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\SpecialExpressionType.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\StartIndexOffsetExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\TableExpression.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Expressions\TableJoinType.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ExpressionTier.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IDataMapper.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IDataRecordReader.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IExpressionDispatcher.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IExpressionLanguageParser.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IExpressionOptimizer.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IExpressionQualifier.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\DataMapper.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\DataRecordReader.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionDispatcher.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionDispatcher.Registrar.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionLanguageParser.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionOptimizer.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\ExpressionQualifier.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\QueryBuilder.Upsert.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IQueryCache.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\LineGrouping.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\PrequelAnalyzer.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\QueryBuilder.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\QueryCache.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\QueryRunner.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\SpecialExpressionTranslator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\Implementation\SqlBuilder.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IPrequelAnalyzer.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IQueryBuilder.cs" />\r
+    <Compile Include="Data\Linq\Sugar\IQueryRunner.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ISpecialExpressionTranslator.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ISqlBuilder.cs" />\r
+    <Compile Include="Data\Linq\Sugar\AbstractQuery.cs" />\r
+    <Compile Include="Data\Linq\Sugar\ParameterizedQuery.cs" />\r
+    <Compile Include="Data\Linq\Sugar\SelectQuery.cs" />\r
+    <Compile Include="Data\Linq\Sugar\QueryContext.cs" />\r
+    <Compile Include="Data\Linq\Sugar\UpsertQuery.cs" />\r
+    <Compile Include="Data\Linq\Table.cs" />\r
+    <Compile Include="DbLinqToDoAttribute.cs" />\r
+    <Compile Include="Factory\DbLinqAttribute.cs" />\r
+    <Compile Include="Factory\Implementation\AbstractObjectFactory.cs" />\r
+    <Compile Include="Factory\Implementation\ReflectionObjectFactory.cs" />\r
+    <Compile Include="Factory\IObjectFactory.cs" />\r
+    <Compile Include="Factory\ObjectFactory.cs" />\r
+    <Compile Include="MonoTODOAttribute.cs" />\r
+    <Compile Include="Schema\Case.cs" />\r
+    <Compile Include="Schema\Dbml\Adapter\ArrayAdapter.cs" />\r
+    <Compile Include="Schema\Dbml\Adapter\CsvArrayAdapter.cs" />\r
+    <Compile Include="Schema\Dbml\Adapter\EnumType.cs" />\r
+    <Compile Include="Schema\Dbml\Adapter\INamedType.cs" />\r
+    <Compile Include="Schema\Dbml\Adapter\ISimpleList.cs" />\r
+    <Compile Include="Schema\Dbml\Adapter\SpecifiedPropertyUpdater.cs" />\r
+    <Compile Include="Schema\WordsExtraction.cs" />\r
+    <Compile Include="Schema\NameFormat.cs" />\r
+    <Compile Include="Schema\AssociationName.cs" />\r
+    <Compile Include="Schema\ColumnName.cs" />\r
+    <Compile Include="Schema\ParameterName.cs" />\r
+    <Compile Include="Schema\Dbml\DbmlSchema.Adapter.cs" />\r
+    <Compile Include="Schema\Dbml\DbmlSchema.cs">\r
+      <DependentUpon>DbmlSchema.xsd</DependentUpon>\r
+    </Compile>\r
+    <Compile Include="Schema\Dbml\DbmlSerializer.cs" />\r
+    <Compile Include="Schema\ProcedureName.cs" />\r
+    <Compile Include="Schema\Name.cs" />\r
+    <Compile Include="Schema\SchemaName.cs" />\r
+    <Compile Include="Schema\TableName.cs" />\r
+    <Compile Include="System.Data.Linq\Assembly\AssemblyInfo.cs" />\r
+    <Compile Include="System.Data.Linq\Binary.cs" />\r
+    <Compile Include="System.Data.Linq\ChangeConflictCollection.cs" />\r
+    <Compile Include="System.Data.Linq\ChangeConflictException.cs" />\r
+    <Compile Include="System.Data.Linq\CompiledQuery.cs" />\r
+    <Compile Include="System.Data.Linq\ConflictMode.cs" />\r
+    <Compile Include="System.Data.Linq\DBConvert.cs" />\r
+    <Compile Include="System.Data.Linq\DuplicateKeyException.cs" />\r
+    <Compile Include="Data\Linq\EntityRef.cs" />\r
+    <Compile Include="System.Data.Linq\ForeignKeyReferenceAlreadyHasValueException.cs" />\r
+    <Compile Include="System.Data.Linq\IFunctionResult.cs" />\r
+    <Compile Include="System.Data.Linq\IMultipleResults.cs" />\r
+    <Compile Include="System.Data.Linq\ISingleResult.cs" />\r
+    <Compile Include="System.Data.Linq\Link.cs" />\r
+    <Compile Include="System.Data.Linq\MemberChangeConflict.cs" />\r
+    <Compile Include="System.Data.Linq\ModifiedMemberInfo.cs" />\r
+    <Compile Include="System.Data.Linq\ObjectChangeConflict.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\AssociationAttribute.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\AutoSync.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\ColumnAttribute.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\DataAttribute.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\DatabaseAttribute.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\FunctionAttribute.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\InheritanceMappingAttribute.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MappingSource.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaAccessor.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaAccessor_2.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaAssociation.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaDataMember.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaFunction.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaModel.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaParameter.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaTable.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\MetaType.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\ParameterAttribute.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\ProviderAttribute.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\ResultTypeAttribute.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\TableAttribute.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\UpdateCheck.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.Mapping\XmlMappingSource.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.SqlClient.Implementation\ObjectMaterializer.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.SqlClient\Sql2000Provider.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.SqlClient\Sql2005Provider.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.SqlClient\SqlHelpers.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.SqlClient\SqlMethods.cs" />\r
+    <Compile Include="System.Data.Linq\System.Data.Linq.SqlClient\SqlProvider.cs" />\r
+    <Compile Include="Util\ExpressionChainEqualityComparer.cs" />\r
+    <Compile Include="Util\ExpressionEqualityComparer.cs" />\r
+    <Compile Include="Util\IDataRecordExtensions.cs" />\r
+    <Compile Include="Util\IDataTypeExtensions.cs" />\r
+    <Compile Include="Language\ILanguages.cs" />\r
+    <Compile Include="Language\ILanguageWords.cs" />\r
+    <Compile Include="Util\IDbDataParameterExtensions.cs" />\r
+    <Compile Include="Util\LambdaComparer.cs" />\r
+    <Compile Include="Util\DataCommand.cs" />\r
+    <Compile Include="Schema\INameFormatter.cs" />\r
+    <Compile Include="Language\Implementation\AbstractEndPluralWords.cs" />\r
+    <Compile Include="Language\Implementation\AbstractWords.cs" />\r
+    <Compile Include="Language\Implementation\Languages.cs" />\r
+    <Compile Include="Language\Implementation\NoLanguageWords.cs" />\r
+    <Compile Include="Schema\Implementation\NameFormatter.cs" />\r
+    <Compile Include="Util\MemberInfoExtensions.cs" />\r
+    <Compile Include="Util\ReflectionExtensions.cs" />\r
+    <Compile Include="Util\ReflectionUtility.cs" />\r
+    <Compile Include="Util\StringExtensions.cs" />\r
+    <Compile Include="Util\TextWriterExtension.cs" />\r
+    <Compile Include="Util\TypeConvert.cs" />\r
+    <Compile Include="Util\QuotesHelper.cs" />\r
+    <Compile Include="Util\ReferenceEqualityComparer.cs" />\r
+    <Compile Include="Util\Page.cs" />\r
+    <Compile Include="Util\TypeExtensions.cs" />\r
+    <Compile Include="Util\TypeLoader.cs" />\r
+    <Compile Include="Vendor\IDataTableColumn.cs" />\r
+    <Compile Include="Vendor\IDataName.cs" />\r
+    <Compile Include="Vendor\IDataType.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.Name.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.Columns.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.DataTableColumn.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.DataName.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.ForeignKey.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.StoredProcedures.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.Tables.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.TypeMapping.cs" />\r
+    <Compile Include="Vendor\Implementation\Vendor.ProcedureResult.cs" />\r
+    <Compile Include="Vendor\INameAliases.cs" />\r
+    <Compile Include="Vendor\ISchemaLoader.cs" />\r
+    <Compile Include="Vendor\ISqlProvider.cs" />\r
+    <Compile Include="Vendor\IVendor.cs" />\r
+    <Compile Include="Vendor\Implementation\SchemaLoader.cs" />\r
+    <Compile Include="Vendor\Implementation\Vendor.cs" />\r
+    <Compile Include="Vendor\Implementation\SqlProvider.cs" />\r
+    <Compile Include="..\DbLinq.SqlServer\SqlServerSqlProvider.cs">\r
+      <Link>Vendors\DbLinq.SqlServer\SqlServerSqlProvider.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.SqlServer\SqlServerTypeConversions.cs">\r
+      <Link>Vendors\DbLinq.SqlServer\SqlServerTypeConversions.cs</Link>\r
+    </Compile>\r
+    <Compile Include="..\DbLinq.SqlServer\SqlServerVendor.cs">\r
+      <Link>Vendors\DbLinq.SqlServer\SqlServerVendor.cs</Link>\r
+    </Compile>\r
+    <Compile Include="Vendor\VendorAttribute.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\DbLinq.snk">\r
+      <Link>Properties\DbLinq.snk</Link>\r
+    </None>\r
+    <None Include="Schema\Dbml\DbmlSchema.bat" />\r
+    <None Include="Schema\Dbml\DbmlSchema.bat" />\r
+    <None Include="System.Data.Linq\Assembly\ChangeLog" />\r
+    <None Include="System.Data.Linq\ChangeLog" />\r
+    <None Include="System.Data.Linq\Makefile" />\r
+    <None Include="System.Data.Linq\System.Data.Linq.dll.sources" />\r
+    <None Include="System.Data.Linq\System.Data.Linq.Mapping\ChangeLog" />\r
+    <None Include="System.Data.Linq\System.Data.Linq.SqlClient.Implementation\ChangeLog" />\r
+    <None Include="System.Data.Linq\System.Data.Linq.SqlClient\ChangeLog" />\r
+    <EmbeddedResource Include="Schema\Dbml\DbmlSchema.xsd">\r
+    </EmbeddedResource>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Content Include="Data\Linq\Sugar\Notes.txt" />\r
+    <Content Include="Data\Linq\ReadMe.txt" />\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+  <PropertyGroup>\r
+    <PreBuildEvent>\r
+    </PreBuildEvent>\r
+  </PropertyGroup>\r
+</Project>\r
index 18fd77a396f629a3eb11985513b1fb3f9b6fd172..47e5151fb4600cad22970debdd100e97687b0ab5 100644 (file)
-//
-// SqlMethods.cs
-//
-// Author:
-//   Atsushi Enomoto  <atsushi@ximian.com>
-//
-// Copyright (C) 2008 Novell, Inc.
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-
-namespace System.Data.Linq.SqlClient
-{
-       public static class SqlMethods
-       {
-        static Exception NotSupported()
-        {
-            return new NotSupportedException("The method in SqlMethods type cannot be used directly. It is only for Linq to SQL trsnslation");
-        }
-
-        [MonoTODO]
-               public static int DateDiffDay (DateTime startDate, DateTime endDate)
-               {
-            throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffDay (DateTime? startDate, DateTime? endDate)
-               {
-            throw NotSupported();
-        }
-
-               [MonoTODO]
-               public static int DateDiffHour (DateTime startDate, DateTime endDate)
-               {
-            throw NotSupported();
-        }
-
-               [MonoTODO]
-               public static int? DateDiffHour (DateTime? startDate, DateTime? endDate)
-               {
-            throw NotSupported();
-        }
-
-               [MonoTODO]
-               public static int DateDiffMillisecond (DateTime startDate, DateTime endDate)
-               {
-            throw NotSupported();
-        }
-
-               [MonoTODO]
-               public static int? DateDiffMillisecond (DateTime? startDate, DateTime? endDate)
-               {
-            throw NotSupported();
-        }
-
-               [MonoTODO]
-               public static int DateDiffMinute (DateTime startDate, DateTime endDate)
-               {
-            throw NotSupported();
-        }
-
-               [MonoTODO]
-               public static int? DateDiffMinute (DateTime? startDate, DateTime? endDate)
-               {
-            throw NotSupported();
-        }
-
-               [MonoTODO]
-               public static int DateDiffMonth (DateTime startDate, DateTime endDate)
-               {
-            throw NotSupported();
-        }
-
-               [MonoTODO]
-               public static int? DateDiffMonth (DateTime? startDate, DateTime? endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int DateDiffSecond (DateTime startDate, DateTime endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffSecond (DateTime? startDate, DateTime? endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int DateDiffYear (DateTime startDate, DateTime endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffYear (DateTime? startDate, DateTime? endDate)
-               {
-                       throw NotSupported();
-               }
-
-               #region .NET 3.5 SP1 (DateTimeOffset)
-
-               [MonoTODO]
-               public static int DateDiffMicrosecond (DateTime startDate, DateTime endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffMicrosecond (DateTime? startDate, DateTime? endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int DateDiffNanosecond (DateTime startDate, DateTime endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffNanosecond (DateTime? startDate, DateTime? endDate)
-               {
-                       throw NotSupported();
-               }
-
-
-               [MonoTODO]
-               public static int DateDiffDay (DateTimeOffset startDate, DateTimeOffset endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffDay (DateTimeOffset? startDate, DateTimeOffset? endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int DateDiffHour (DateTimeOffset startDate, DateTimeOffset endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffHour (DateTimeOffset? startDate, DateTimeOffset? endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int DateDiffMicrosecond (DateTimeOffset startDate, DateTimeOffset endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffMicrosecond (DateTimeOffset? startDate, DateTimeOffset? endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int DateDiffMillisecond (DateTimeOffset startDate, DateTimeOffset endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffMillisecond (DateTimeOffset? startDate, DateTimeOffset? endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int DateDiffMinute (DateTimeOffset startDate, DateTimeOffset endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffMinute (DateTimeOffset? startDate, DateTimeOffset? endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int DateDiffMonth (DateTimeOffset startDate, DateTimeOffset endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffMonth (DateTimeOffset? startDate, DateTimeOffset? endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int DateDiffNanosecond (DateTimeOffset startDate, DateTimeOffset endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffNanosecond (DateTimeOffset? startDate, DateTimeOffset? endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int DateDiffSecond (DateTimeOffset startDate, DateTimeOffset endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffSecond (DateTimeOffset? startDate, DateTimeOffset? endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int DateDiffYear (DateTimeOffset startDate, DateTimeOffset endDate)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static int? DateDiffYear (DateTimeOffset? startDate, DateTimeOffset? endDate)
-               {
-                       throw NotSupported();
-               }
-               #endregion
-
-               [MonoTODO]
-               public static bool Like (string matchExpression, string pattern)
-               {
-                       throw NotSupported();
-               }
-
-               [MonoTODO]
-               public static bool Like (string matchExpression, string pattern, char escapeCharacter)
-               {
-                       throw NotSupported();
-               }
-       }
-}
+//\r
+// SqlMethods.cs\r
+//\r
+// Author:\r
+//   Atsushi Enomoto  <atsushi@ximian.com>\r
+//\r
+// Copyright (C) 2008 Novell, Inc.\r
+//\r
+\r
+//\r
+// Permission is hereby granted, free of charge, to any person obtaining\r
+// a copy of this software and associated documentation files (the\r
+// "Software"), to deal in the Software without restriction, including\r
+// without limitation the rights to use, copy, modify, merge, publish,\r
+// distribute, sublicense, and/or sell copies of the Software, and to\r
+// permit persons to whom the Software is furnished to do so, subject to\r
+// the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be\r
+// included in all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+//\r
+using System;\r
+\r
+namespace System.Data.Linq.SqlClient\r
+{\r
+       public static class SqlMethods\r
+       {\r
+        static Exception NotSupported()\r
+        {\r
+            return new NotSupportedException("The method in SqlMethods type cannot be used directly. It is only for Linq to SQL trsnslation");\r
+        }\r
+\r
+        [MonoTODO]\r
+               public static int DateDiffDay (DateTime startDate, DateTime endDate)\r
+               {\r
+            throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffDay (DateTime? startDate, DateTime? endDate)\r
+               {\r
+            throw NotSupported();\r
+        }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffHour (DateTime startDate, DateTime endDate)\r
+               {\r
+            throw NotSupported();\r
+        }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffHour (DateTime? startDate, DateTime? endDate)\r
+               {\r
+            throw NotSupported();\r
+        }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffMillisecond (DateTime startDate, DateTime endDate)\r
+               {\r
+            throw NotSupported();\r
+        }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffMillisecond (DateTime? startDate, DateTime? endDate)\r
+               {\r
+            throw NotSupported();\r
+        }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffMinute (DateTime startDate, DateTime endDate)\r
+               {\r
+            throw NotSupported();\r
+        }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffMinute (DateTime? startDate, DateTime? endDate)\r
+               {\r
+            throw NotSupported();\r
+        }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffMonth (DateTime startDate, DateTime endDate)\r
+               {\r
+            throw NotSupported();\r
+        }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffMonth (DateTime? startDate, DateTime? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffSecond (DateTime startDate, DateTime endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffSecond (DateTime? startDate, DateTime? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffYear (DateTime startDate, DateTime endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffYear (DateTime? startDate, DateTime? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               #region .NET 3.5 SP1 (DateTimeOffset)\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffMicrosecond (DateTime startDate, DateTime endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffMicrosecond (DateTime? startDate, DateTime? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffNanosecond (DateTime startDate, DateTime endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffNanosecond (DateTime? startDate, DateTime? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffDay (DateTimeOffset startDate, DateTimeOffset endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffDay (DateTimeOffset? startDate, DateTimeOffset? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffHour (DateTimeOffset startDate, DateTimeOffset endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffHour (DateTimeOffset? startDate, DateTimeOffset? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffMicrosecond (DateTimeOffset startDate, DateTimeOffset endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffMicrosecond (DateTimeOffset? startDate, DateTimeOffset? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffMillisecond (DateTimeOffset startDate, DateTimeOffset endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffMillisecond (DateTimeOffset? startDate, DateTimeOffset? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffMinute (DateTimeOffset startDate, DateTimeOffset endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffMinute (DateTimeOffset? startDate, DateTimeOffset? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffMonth (DateTimeOffset startDate, DateTimeOffset endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffMonth (DateTimeOffset? startDate, DateTimeOffset? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffNanosecond (DateTimeOffset startDate, DateTimeOffset endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffNanosecond (DateTimeOffset? startDate, DateTimeOffset? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffSecond (DateTimeOffset startDate, DateTimeOffset endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffSecond (DateTimeOffset? startDate, DateTimeOffset? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int DateDiffYear (DateTimeOffset startDate, DateTimeOffset endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static int? DateDiffYear (DateTimeOffset? startDate, DateTimeOffset? endDate)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+               #endregion\r
+\r
+               [MonoTODO]\r
+               public static bool Like (string matchExpression, string pattern)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+\r
+               [MonoTODO]\r
+               public static bool Like (string matchExpression, string pattern, char escapeCharacter)\r
+               {\r
+                       throw NotSupported();\r
+               }\r
+       }\r
+}\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/CsvArrayAdapterTest.cs b/mcs/class/System.Data.Linq/src/DbLinq/Test/CsvArrayAdapterTest.cs
new file mode 100644 (file)
index 0000000..bd7e6a9
--- /dev/null
@@ -0,0 +1,74 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System.Linq;\r
+using DbLinq.Schema.Dbml.Adapter;\r
+using DbLinq.Util;\r
+using Microsoft.VisualStudio.TestTools.UnitTesting;\r
+using NUnit.Framework;\r
+using Assert = NUnit.Framework.Assert;\r
+\r
+namespace DbLinqTest\r
+{\r
+    /// <summary>\r
+    /// Summary description for TypeContextTest\r
+    /// </summary>\r
+    [TestFixture]\r
+    [TestClass]\r
+    public class CsvArrayAdapterTest\r
+    {\r
+        public class CsvArray\r
+        {\r
+            public string S;\r
+            public ISimpleList<string> A;\r
+\r
+            public CsvArray()\r
+            {\r
+                A = new CsvArrayAdapter(this, "S");\r
+            }\r
+        }\r
+\r
+        [TestMethod]\r
+        [Test]\r
+        public void ArrayTest()\r
+        {\r
+            var ca = new CsvArray { S = "a,b" };\r
+            var al = ca.A.ToArray();\r
+            Assert.AreEqual(2, al.Count());\r
+            Assert.AreEqual("a", al[0]);\r
+            Assert.AreEqual("b", al[1]);\r
+        }\r
+\r
+        [TestMethod]\r
+        [Test]\r
+        public void WriteArrayTest()\r
+        {\r
+            var ca = new CsvArray { S = "a,b" };\r
+            ca.A.Add("c");\r
+            Assert.AreEqual("a,b,c", ca.S);\r
+        }\r
+    }\r
+}\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/DataContextTest.cs b/mcs/class/System.Data.Linq/src/DbLinq/Test/DataContextTest.cs
new file mode 100755 (executable)
index 0000000..066085e
--- /dev/null
@@ -0,0 +1,169 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Data;\r
+using System.Data.Common;\r
+using System.Data.Linq.Mapping;\r
+using System.Linq;\r
+using System.IO;\r
+\r
+#if MONO_STRICT\r
+using System.Data.Linq;\r
+#else\r
+using DbLinq.Data.Linq;\r
+#endif\r
+\r
+using NUnit.Framework;\r
+\r
+using DbLinq.Null;\r
+\r
+namespace DbLinqTest {\r
+\r
+    class DummyConnection : IDbConnection\r
+    {\r
+        public DummyConnection()\r
+        {\r
+            ConnectionString = "";\r
+        }\r
+\r
+        public IDbTransaction BeginTransaction() {return null;}\r
+        public IDbTransaction BeginTransaction(IsolationLevel il) {return null;}\r
+        public void ChangeDatabase(string databaseName) {}\r
+        public void Close() {}\r
+        public IDbCommand CreateCommand() {return null;}\r
+        public string ConnectionString{get; set;}\r
+        public int ConnectionTimeout{get {return 0;}}\r
+        public string Database{get {return null;}}\r
+        public void Dispose() {}\r
+        public void Open() {}\r
+        public ConnectionState State{get {return ConnectionState.Closed;}}\r
+    }\r
+\r
+    [TestFixture]\r
+    public class DataContextTest\r
+    {\r
+        DataContext context;\r
+\r
+        [SetUp]\r
+        public void SetUp()\r
+        {\r
+            context = new DataContext(new NullConnection() { ConnectionString = "" });\r
+        }\r
+\r
+        [TearDown]\r
+        public void TearDown()\r
+        {\r
+            context = null;\r
+        }\r
+\r
+        [Test, ExpectedException(typeof(ArgumentNullException))]\r
+        public void Ctor_ConnectionStringNull()\r
+        {\r
+            string connectionString = null;\r
+            new DataContext(connectionString);\r
+        }\r
+\r
+        [Test, ExpectedException(typeof(ArgumentNullException))]\r
+        public void Ctor_ConnectionNull()\r
+        {\r
+            IDbConnection connection = null;\r
+            new DataContext(connection);\r
+        }\r
+\r
+        [Test, ExpectedException(typeof(NullReferenceException))]\r
+        public void Ctor_ConnectionStringOfConnectionIsNull()\r
+        {\r
+            IDbConnection connection = new NullConnection() { ConnectionString = null };\r
+            new DataContext(connection);\r
+        }\r
+\r
+        [Test, ExpectedException(typeof(ArgumentException))]\r
+        public void Ctor_ConnectionString_DbLinqConnectionType_Empty()\r
+        {\r
+            new DataContext("DbLinqConnectionType=");\r
+        }\r
+\r
+        [Test, ExpectedException(typeof(ArgumentException))]\r
+        public void Ctor_ConnectionString_DbLinqConnectionType_Invalid()\r
+        {\r
+            new DataContext("DbLinqConnectionType=InvalidType, DoesNotExist");\r
+        }\r
+\r
+        [Test, ExpectedException(typeof(ArgumentException))]\r
+        public void Ctor_ConnectionString_DbLinqProvider_InvalidVendor()\r
+        {\r
+            new DataContext("DbLinqProvider=ThisVendorDoesNotExist");\r
+        }\r
+\r
+        [Test, ExpectedException(typeof(ArgumentException))]\r
+        public void Ctor_ConnectionString_DbLinqProvider_InvalidVendorWithDots()\r
+        {\r
+            new DataContext("DbLinqProvider=DbLinq.Sqlite.dll");\r
+        }\r
+\r
+        [Test]\r
+        public void Connection()\r
+        {\r
+            IDbConnection connection = new NullConnection() { ConnectionString = "" };\r
+            DataContext dc = new DataContext(connection);\r
+            Assert.AreEqual(connection, dc.Connection);\r
+\r
+#if !MONO_STRICT\r
+            dc = new DataContext (new DummyConnection());\r
+            Assert.AreEqual(null, dc.Connection);\r
+#endif\r
+        }\r
+\r
+        [Test, ExpectedException(typeof(ArgumentNullException))]\r
+        public void ExecuteQuery_ElementTypeNull()\r
+        {\r
+            Type elementType = null;\r
+            context.ExecuteQuery(elementType, "command");\r
+        }\r
+\r
+        [Test, ExpectedException(typeof(ArgumentNullException))]\r
+        public void ExecuteQuery_QueryNull()\r
+        {\r
+            Type elementType = typeof(Person);\r
+            context.ExecuteQuery(elementType, null);\r
+        }\r
+\r
+        [Test, ExpectedException(typeof(ArgumentNullException))]\r
+        public void ExecuteQueryTResult_QueryNull()\r
+        {\r
+            context.ExecuteQuery<Person>(null);\r
+        }\r
+\r
+        [Test, ExpectedException(typeof(ArgumentNullException))]\r
+        public void GetCommand_QueryNull()\r
+        {\r
+            IQueryable query = null;\r
+            context.GetCommand(query);\r
+        }\r
+    }\r
+}\r
+\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/DbLinqTest.csproj b/mcs/class/System.Data.Linq/src/DbLinq/Test/DbLinqTest.csproj
new file mode 100644 (file)
index 0000000..bc1324f
--- /dev/null
@@ -0,0 +1,98 @@
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{9F424D05-5F16-4C01-8C17-14EF22FF2174}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>DbLinqTest</RootNamespace>\r
+    <AssemblyName>DbLinqTest</AssemblyName>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <FileAlignment>512</FileAlignment>\r
+    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>\r
+    <SignAssembly>true</SignAssembly>\r
+    <AssemblyOriginatorKeyFile>..\..\src\DbLinq.snk</AssemblyOriginatorKeyFile>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>DEBUG;TRACE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />\r
+    <Reference Include="Microsoft.VisualStudio.TeamSystem.Data.UnitTesting, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />\r
+    <Reference Include="MySql.Data, Version=5.0.8.1, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\MySql.Data.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.framework, Version=2.2.9.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.configuration" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.DataSetExtensions">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Drawing" />\r
+    <Reference Include="System.Windows.Forms" />\r
+    <Reference Include="System.Xml" />\r
+    <Reference Include="System.Xml.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="ExpressionEqualityComparerTest.cs" />\r
+    <Compile Include="NameFormatterTest.cs" />\r
+    <Compile Include="CsvArrayAdapterTest.cs" />\r
+    <Compile Include="FrenchWordsTest.cs" />\r
+    <Compile Include="EnglishWordsTest.cs" />\r
+    <Compile Include="Properties\AssemblyInfo.cs" />\r
+    <Compile Include="IDataTypeExtensionsTest.cs" />\r
+    <Compile Include="TypeContextTest.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\..\DbMetal\DbMetal.csproj">\r
+      <Project>{363FF43D-C870-4423-BE50-DAED7793A6D1}</Project>\r
+      <Name>DbMetal</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq.snk">\r
+      <Link>Properties\DbLinq.snk</Link>\r
+    </None>\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
+       Other similar extension points exist, see Microsoft.Common.targets.\r
+  <Target Name="BeforeBuild">\r
+  </Target>\r
+  <Target Name="AfterBuild">\r
+  </Target>\r
+  -->\r
+</Project>\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/DbLinq_test.csproj b/mcs/class/System.Data.Linq/src/DbLinq/Test/DbLinq_test.csproj
new file mode 100755 (executable)
index 0000000..86e3d44
--- /dev/null
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{408D1FEB-71F4-4666-ADAD-194616D99B94}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>DbLinq_test</RootNamespace>\r
+    <AssemblyName>DbLinq_test</AssemblyName>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <FileAlignment>512</FileAlignment>\r
+    <SignAssembly>true</SignAssembly>\r
+    <AssemblyOriginatorKeyFile>..\..\DbLinq.snk</AssemblyOriginatorKeyFile>\r
+    <PublishUrl>publish\</PublishUrl>\r
+    <Install>true</Install>\r
+    <InstallFrom>Disk</InstallFrom>\r
+    <UpdateEnabled>false</UpdateEnabled>\r
+    <UpdateMode>Foreground</UpdateMode>\r
+    <UpdateInterval>7</UpdateInterval>\r
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>\r
+    <UpdatePeriodically>false</UpdatePeriodically>\r
+    <UpdateRequired>false</UpdateRequired>\r
+    <MapFileExtensions>true</MapFileExtensions>\r
+    <ApplicationRevision>0</ApplicationRevision>\r
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>\r
+    <IsWebBootstrapper>false</IsWebBootstrapper>\r
+    <UseApplicationTrust>false</UseApplicationTrust>\r
+    <BootstrapperEnabled>true</BootstrapperEnabled>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>DEBUG;TRACE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+    <SignAssembly>true</SignAssembly>\r
+    <AssemblyKeyFile>..\..\DbLinq.snk</AssemblyKeyFile>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">\r
+      <Visible>False</Visible>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">\r
+      <Visible>False</Visible>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">\r
+      <Visible>False</Visible>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">\r
+      <Visible>False</Visible>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">\r
+      <Visible>False</Visible>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">\r
+      <Visible>False</Visible>\r
+    </BootstrapperPackage>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="CsvArrayAdapterTest.cs" />\r
+    <Compile Include="DataContextTest.cs" />\r
+    <Compile Include="ExpressionEqualityComparerTest.cs" />\r
+    <Compile Include="IDataTypeExtensionsTest.cs" />\r
+    <Compile Include="NullProvider.cs">\r
+      <SubType>Component</SubType>\r
+    </Compile>\r
+    <Compile Include="PeopleTable.cs" />\r
+    <Compile Include="Providers\Internals\ReflectionTest.cs" />\r
+    <Compile Include="TypeContextTest.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\..\DbMetal\DbMetal.csproj">\r
+      <Project>{363FF43D-C870-4423-BE50-DAED7793A6D1}</Project>\r
+      <Name>DbMetal</Name>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\DbLinq.csproj">\r
+      <Project>{7950197D-4122-49CB-9FD7-45E666BAFEC2}</Project>\r
+      <Name>DbLinq</Name>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq.snk" />\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
+       Other similar extension points exist, see Microsoft.Common.targets.\r
+  <Target Name="BeforeBuild">\r
+  </Target>\r
+  <Target Name="AfterBuild">\r
+  </Target>\r
+  -->\r
+</Project>\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/DbLinq_test_ndb_strict.csproj b/mcs/class/System.Data.Linq/src/DbLinq/Test/DbLinq_test_ndb_strict.csproj
new file mode 100755 (executable)
index 0000000..ca6b40f
--- /dev/null
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <PropertyGroup>\r
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
+    <ProductVersion>9.0.30729</ProductVersion>\r
+    <SchemaVersion>2.0</SchemaVersion>\r
+    <ProjectGuid>{AB60629C-6B19-4465-89AA-DBD7A0428F4B}</ProjectGuid>\r
+    <OutputType>Library</OutputType>\r
+    <AppDesignerFolder>Properties</AppDesignerFolder>\r
+    <RootNamespace>DbLinq_test_ndb</RootNamespace>\r
+    <AssemblyName>DbLinq_test_ndb_strict</AssemblyName>\r
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
+    <FileAlignment>512</FileAlignment>\r
+    <SignAssembly>true</SignAssembly>\r
+    <AssemblyOriginatorKeyFile>..\..\DbLinq.snk</AssemblyOriginatorKeyFile>\r
+    <PublishUrl>publish\</PublishUrl>\r
+    <Install>true</Install>\r
+    <InstallFrom>Disk</InstallFrom>\r
+    <UpdateEnabled>false</UpdateEnabled>\r
+    <UpdateMode>Foreground</UpdateMode>\r
+    <UpdateInterval>7</UpdateInterval>\r
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>\r
+    <UpdatePeriodically>false</UpdatePeriodically>\r
+    <UpdateRequired>false</UpdateRequired>\r
+    <MapFileExtensions>true</MapFileExtensions>\r
+    <ApplicationRevision>0</ApplicationRevision>\r
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>\r
+    <IsWebBootstrapper>false</IsWebBootstrapper>\r
+    <UseApplicationTrust>false</UseApplicationTrust>\r
+    <BootstrapperEnabled>true</BootstrapperEnabled>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
+    <DebugSymbols>true</DebugSymbols>\r
+    <DebugType>full</DebugType>\r
+    <Optimize>false</Optimize>\r
+    <OutputPath>..\..\..\build.dbg\</OutputPath>\r
+    <DefineConstants>TRACE;DEBUG;MONO_STRICT</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+    <SignAssembly>true</SignAssembly>\r
+    <AssemblyKeyFile>..\..\DbLinq.snk</AssemblyKeyFile>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
+    <DebugType>pdbonly</DebugType>\r
+    <Optimize>true</Optimize>\r
+    <OutputPath>..\..\..\build\</OutputPath>\r
+    <DefineConstants>TRACE;MONO_STRICT</DefineConstants>\r
+    <ErrorReport>prompt</ErrorReport>\r
+    <WarningLevel>4</WarningLevel>\r
+  </PropertyGroup>\r
+  <ItemGroup>\r
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">\r
+      <Visible>False</Visible>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">\r
+      <Visible>False</Visible>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">\r
+      <Visible>False</Visible>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">\r
+      <Visible>False</Visible>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">\r
+      <Visible>False</Visible>\r
+    </BootstrapperPackage>\r
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">\r
+      <Visible>False</Visible>\r
+    </BootstrapperPackage>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Compile Include="DataContextTest.cs" />\r
+    <Compile Include="NullProvider.cs">\r
+      <SubType>Component</SubType>\r
+    </Compile>\r
+    <Compile Include="PeopleTable.cs" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">\r
+      <SpecificVersion>False</SpecificVersion>\r
+      <HintPath>..\..\..\lib\nunit.framework.dll</HintPath>\r
+    </Reference>\r
+    <Reference Include="System" />\r
+    <Reference Include="System.Core">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+    <Reference Include="System.Data" />\r
+    <Reference Include="System.Data.Linq">\r
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+    </Reference>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="..\..\DbLinq.snk" />\r
+  </ItemGroup>\r
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />\r
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
+       Other similar extension points exist, see Microsoft.Common.targets.\r
+  <Target Name="BeforeBuild">\r
+  </Target>\r
+  <Target Name="AfterBuild">\r
+  </Target>\r
+  -->\r
+</Project>
\ No newline at end of file
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/ExpressionEqualityComparerTest.cs b/mcs/class/System.Data.Linq/src/DbLinq/Test/ExpressionEqualityComparerTest.cs
new file mode 100644 (file)
index 0000000..7945972
--- /dev/null
@@ -0,0 +1,131 @@
+using System.Collections.Generic;\r
+using System.Reflection;\r
+using DbLinq.Util;\r
+using Microsoft.VisualStudio.TestTools.UnitTesting;\r
+using System.Linq.Expressions;\r
+using NUnit.Framework;\r
+using Assert = Microsoft.VisualStudio.TestTools.UnitTesting.Assert;\r
+\r
+namespace DbLinqTest\r
+{\r
+    /// <summary>\r
+    ///This is a test class for ExpressionEqualityComparerTest and is intended\r
+    ///to contain all ExpressionEqualityComparerTest Unit Tests\r
+    ///</summary>\r
+    [TestClass, TestFixture]\r
+    public class ExpressionEqualityComparerTest\r
+    {\r
+        private readonly IEqualityComparer<Expression> equalityComparer = new ExpressionEqualityComparer();\r
+\r
+        private void CheckEquality(Expression a, Expression b)\r
+        {\r
+            Assert.AreEqual(equalityComparer.GetHashCode(a), equalityComparer.GetHashCode(b));\r
+            Assert.IsTrue(equalityComparer.Equals(a, b));\r
+        }\r
+\r
+        private void CheckInequality(Expression a, Expression b)\r
+        {\r
+            Assert.IsFalse(equalityComparer.Equals(a, b));\r
+        }\r
+\r
+        [TestMethod, Test]\r
+        public void Equality1Test()\r
+        {\r
+            CheckEquality(Expression.Add(Expression.Constant(1), Expression.Constant(2)),\r
+                          Expression.Add(Expression.Constant(1), Expression.Constant(2)));\r
+        }\r
+\r
+        [TestMethod, Test]\r
+        public void Inequality1Test()\r
+        {\r
+            CheckInequality(Expression.Add(Expression.Constant(1), Expression.Constant(2)),\r
+                            Expression.Add(Expression.Constant(1), Expression.Constant(3)));\r
+        }\r
+\r
+        [TestMethod, Test]\r
+        public void Equality2Test()\r
+        {\r
+            CheckEquality(Expression.Condition(Expression.Constant(true), Expression.Constant(1), Expression.Constant(2)),\r
+                          Expression.Condition(Expression.Constant(true), Expression.Constant(1), Expression.Constant(2)));\r
+        }\r
+\r
+        [TestMethod, Test]\r
+        public void Equality3Test()\r
+        {\r
+            CheckEquality(Expression.Constant(1), Expression.Constant(1));\r
+        }\r
+\r
+        [TestMethod, Test]\r
+        public void Equality4Test()\r
+        {\r
+            CheckEquality(Expression.Constant("1"), Expression.Constant("1"));\r
+        }\r
+\r
+        [TestMethod, Test]\r
+        public void Inequality4Test()\r
+        {\r
+            CheckInequality(Expression.Constant(1), Expression.Constant("1"));\r
+        }\r
+        [TestMethod, Test]\r
+        public void Inequality5Test()\r
+        {\r
+            CheckInequality(Expression.Constant(1), null);\r
+        }\r
+        [TestMethod, Test]\r
+        public void Inequality6Test()\r
+        {\r
+            CheckInequality(null, Expression.Constant("1"));\r
+        }\r
+        [TestMethod, Test]\r
+        public void Inequality7Test()\r
+        {\r
+            CheckInequality(Expression.Constant(1), Expression.Negate(Expression.Constant(1)));\r
+        }\r
+        static int F()\r
+        {\r
+            return 1;\r
+        }\r
+\r
+        static int G()\r
+        {\r
+            return 1;\r
+        }\r
+\r
+        //[TestMethod, Test]\r
+        //public void Equality8Test()\r
+        //{\r
+        //    CheckEquality(\r
+        //        Expression.Invoke(Expression.Call(GetType().GetMethod("F", BindingFlags.NonPublic | BindingFlags.Static))),\r
+        //        Expression.Invoke(Expression.Call(GetType().GetMethod("F", BindingFlags.NonPublic | BindingFlags.Static)))\r
+        //        );\r
+        //}\r
+\r
+        //[TestMethod, Test]\r
+        //public void Inequality8Test()\r
+        //{\r
+        //    CheckInequality(\r
+        //        Expression.Invoke(Expression.Call(GetType().GetMethod("F", BindingFlags.NonPublic | BindingFlags.Static))),\r
+        //        Expression.Invoke(Expression.Call(GetType().GetMethod("G", BindingFlags.NonPublic | BindingFlags.Static)))\r
+        //        );\r
+        //}\r
+        [TestMethod, Test]\r
+        public void Equality9Test()\r
+        {\r
+            CheckEquality(\r
+                Expression.Call(GetType().GetMethod("F", BindingFlags.NonPublic | BindingFlags.Static)),\r
+                Expression.Call(GetType().GetMethod("F", BindingFlags.NonPublic | BindingFlags.Static))\r
+                );\r
+        }\r
+\r
+        [TestMethod, Test]\r
+        public void Inequality9Test()\r
+        {\r
+            CheckInequality(\r
+                Expression.Call(GetType().GetMethod("F", BindingFlags.NonPublic | BindingFlags.Static)),\r
+                Expression.Call(GetType().GetMethod("G", BindingFlags.NonPublic | BindingFlags.Static))\r
+                );\r
+        }\r
+\r
+        // TODO: finish tests, lazy boy\r
+    }\r
+}\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/IDataTypeExtensionsTest.cs b/mcs/class/System.Data.Linq/src/DbLinq/Test/IDataTypeExtensionsTest.cs
new file mode 100644 (file)
index 0000000..8c94252
--- /dev/null
@@ -0,0 +1,124 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System.Collections.Generic;\r
+using DbLinq.Schema;\r
+using DbLinq.Schema.Dbml;\r
+using DbLinq.Util;\r
+using DbLinq.Vendor;\r
+using DbLinq.Vendor.Implementation;\r
+using Microsoft.VisualStudio.TestTools.UnitTesting;\r
+\r
+namespace DbLinqTest\r
+{\r
+    /// <summary>\r
+    ///This is a test class for SchemaLoaderTest and is intended\r
+    ///to contain all SchemaLoaderTest Unit Tests\r
+    ///</summary>\r
+    [TestClass()]\r
+    public class IDataTypeExtensionsTest\r
+    {\r
+\r
+        /// <summary>\r
+        ///A test for UnpackDbType\r
+        ///</summary>\r
+        [TestMethod()]\r
+        public void UnpackDbType1Test()\r
+        {\r
+            string rawType = "int";\r
+            IDataType dataType = new SchemaLoader.DataType();\r
+            dataType.UnpackRawDbType(rawType);\r
+            Assert.AreEqual("int", dataType.Type);\r
+            Assert.AreEqual(null, dataType.Length);\r
+            Assert.AreEqual(null, dataType.Precision);\r
+            Assert.AreEqual(null, dataType.Scale);\r
+            //Assert.AreEqual(null, dataType.Unsigned); // irrelevant\r
+        }\r
+\r
+        /// <summary>\r
+        ///A test for UnpackDbType\r
+        ///</summary>\r
+        [TestMethod()]\r
+        public void UnpackDbType2Test()\r
+        {\r
+            string rawType = "int(12)";\r
+            IDataType dataType = new SchemaLoader.DataType();\r
+            dataType.UnpackRawDbType(rawType);\r
+            Assert.AreEqual("int", dataType.Type);\r
+            Assert.AreEqual(12, dataType.Length);\r
+            Assert.AreEqual(12, dataType.Precision);\r
+            Assert.AreEqual(null, dataType.Scale);\r
+            //Assert.AreEqual(null, dataType.Unsigned); // irrelevant\r
+        }\r
+\r
+        /// <summary>\r
+        ///A test for UnpackDbType\r
+        ///</summary>\r
+        [TestMethod()]\r
+        public void UnpackDbType3Test()\r
+        {\r
+            string rawType = "number(15,5)";\r
+            IDataType dataType = new SchemaLoader.DataType();\r
+            dataType.UnpackRawDbType(rawType);\r
+            Assert.AreEqual("number", dataType.Type);\r
+            Assert.AreEqual(15, dataType.Length);\r
+            Assert.AreEqual(15, dataType.Precision);\r
+            Assert.AreEqual(5, dataType.Scale);\r
+            Assert.AreEqual(false, dataType.Unsigned);\r
+        }\r
+\r
+        /// <summary>\r
+        ///A test for UnpackDbType\r
+        ///</summary>\r
+        [TestMethod()]\r
+        public void UnpackDbType4Test()\r
+        {\r
+            string rawType = "type()";\r
+            IDataType dataType = new SchemaLoader.DataType();\r
+            dataType.UnpackRawDbType(rawType);\r
+            Assert.AreEqual("type", dataType.Type);\r
+            Assert.AreEqual(null, dataType.Length);\r
+            Assert.AreEqual(null, dataType.Precision);\r
+            Assert.AreEqual(null, dataType.Scale);\r
+        }\r
+\r
+        /// <summary>\r
+        ///A test for UnpackDbType\r
+        ///</summary>\r
+        [TestMethod()]\r
+        public void UnpackDbType5Test()\r
+        {\r
+            string rawType = "smallint unsigned";\r
+            IDataType dataType = new SchemaLoader.DataType();\r
+            dataType.UnpackRawDbType(rawType);\r
+            Assert.AreEqual("smallint", dataType.Type);\r
+            Assert.AreEqual(null, dataType.Length);\r
+            Assert.AreEqual(null, dataType.Precision);\r
+            Assert.AreEqual(null, dataType.Scale);\r
+            Assert.AreEqual(true, dataType.Unsigned);\r
+        }\r
+    }\r
+}\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/NameFormatterTest.cs b/mcs/class/System.Data.Linq/src/DbLinq/Test/NameFormatterTest.cs
new file mode 100644 (file)
index 0000000..7b19b03
--- /dev/null
@@ -0,0 +1,111 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System.Globalization;\r
+using DbLinq;\r
+using DbLinq.Schema;\r
+using DbLinq.Schema.Implementation;\r
+using DbLinq.Util;\r
+using DbMetal;\r
+using Microsoft.VisualStudio.TestTools.UnitTesting;\r
+using NUnit.Framework;\r
+using Assert = NUnit.Framework.Assert;\r
+using Case = DbLinq.Schema.Case;\r
+using WordsExtraction = DbLinq.Schema.WordsExtraction;\r
+\r
+namespace DbLinqTest\r
+{\r
+    /// <summary>\r
+    /// Test for NameFormatter\r
+    /// </summary>\r
+    [TestFixture]\r
+    [TestClass]\r
+    public class NameFormatterTest\r
+    {\r
+        private NameFormat InvariantNameFormat\r
+        {\r
+            get\r
+            {\r
+                return new NameFormat(false, Case.PascalCase, CultureInfo.InvariantCulture);\r
+            }\r
+        }\r
+\r
+        private NameFormat EnglishNameFormat\r
+        {\r
+            get\r
+            {\r
+                Reference.DbLinqLocalizations();\r
+                return new NameFormat(false, Case.PascalCase, new CultureInfo("en-us"));\r
+            }\r
+        }\r
+\r
+        [TestMethod]\r
+        [Test]\r
+        public void InvalidCharactersCaseTest()\r
+        {\r
+            var nf = new NameFormatter();\r
+            var tn = nf.GetTableName("A#?", WordsExtraction.FromCase, InvariantNameFormat);\r
+            Assert.AreEqual("A__", tn.ClassName);\r
+        }\r
+\r
+        [TestMethod]\r
+        [Test]\r
+        public void InvalidCharactersLanguageTest()\r
+        {\r
+            var nf = new NameFormatter();\r
+            var tn = nf.GetTableName("A#?", WordsExtraction.FromDictionary, InvariantNameFormat);\r
+            Assert.AreEqual("A__", tn.ClassName);\r
+        }\r
+\r
+        [TestMethod]\r
+        [Test]\r
+        public void InvalidCharactersLanguage2Test()\r
+        {\r
+            var nf = new NameFormatter();\r
+            var tn = nf.GetTableName("Test#?", WordsExtraction.FromDictionary, EnglishNameFormat);\r
+            Assert.AreEqual("Test__", tn.ClassName);\r
+        }\r
+\r
+        [TestMethod]\r
+        [Test]\r
+        public void GetWordsTest_MyTableName()\r
+        {\r
+            var nf = new NameFormatter();\r
+            var tn = nf.GetTableName("MY_TABLE_NAME_", WordsExtraction.FromDictionary, EnglishNameFormat);\r
+            Assert.AreEqual("MyTableName", tn.ClassName);\r
+        }\r
+\r
+        [TestMethod]\r
+        [Test]\r
+        public void GetWordsTest_MyTableName2()\r
+        {\r
+            var nf = new NameFormatter();\r
+            var tn = nf.GetTableName("_MY_TABLE__NAME", WordsExtraction.FromDictionary, EnglishNameFormat);\r
+            Assert.AreEqual("MyTableName", tn.ClassName);\r
+        }\r
+\r
+    }\r
+}\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/NullProvider.cs b/mcs/class/System.Data.Linq/src/DbLinq/Test/NullProvider.cs
new file mode 100644 (file)
index 0000000..6248ad7
--- /dev/null
@@ -0,0 +1,249 @@
+#region MIT license
+// 
+// MIT license
+//
+// Copyright (c) 2009 Novell, Inc.
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+// 
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.Common;
+using System.Data.Linq;
+using System.Linq;
+
+namespace DbLinq.Null {
+
+       class NullConnection : DbConnection
+       {
+               public NullConnection ()
+               {
+               }
+
+               public override string ConnectionString {get; set;}
+               public override string Database {get {return "NullDatabase";}}
+               public override string DataSource {get {return "NullDataSource";}}
+               public override string ServerVersion {get {return "0.0";}}
+               public override ConnectionState State {get {return ConnectionState.Closed;}}
+
+               public override void ChangeDatabase (string databaseName)
+               {
+                       throw new NotSupportedException ();
+               }
+
+               public override void Close ()
+               {
+               }
+
+               public override void Open ()
+               {
+               }
+
+               protected override DbTransaction BeginDbTransaction (IsolationLevel level)
+               {
+                       throw new NotSupportedException ();
+               }
+
+               protected override DbCommand CreateDbCommand ()
+               {
+                       return new NullCommand ();
+               }
+       }
+
+       class NullParameter : DbParameter
+       {
+               public override DbType DbType {get; set;}
+               public override ParameterDirection Direction {get; set;}
+               public override bool IsNullable {get; set;}
+               public override string ParameterName {get; set;}
+               public override int Size {get; set;}
+               public override string SourceColumn {get; set;}
+               public override bool SourceColumnNullMapping {get; set;}
+               public override DataRowVersion SourceVersion {get; set;}
+               public override object Value {get; set;}
+
+               public override void ResetDbType ()
+               {
+                       throw new NotSupportedException ();
+               }
+       }
+
+       class DbParameterCollection<TParameter> : DbParameterCollection
+               where TParameter : DbParameter
+       {
+               List<TParameter> parameters = new List<TParameter> ();
+
+               public DbParameterCollection ()
+               {
+               }
+
+               public override int Count {get {return parameters.Count;}}
+               public override bool IsFixedSize {get {return false;}}
+               public override bool IsReadOnly {get {return false;}}
+               public override bool IsSynchronized {get {return false;}}
+               public override object SyncRoot {get {return parameters;}}
+
+               public override int Add (object value)
+               {
+                       if (!(value is TParameter))
+                               throw new ArgumentException ("wrong type", "value");
+                       parameters.Add ((TParameter) value);
+                       return parameters.Count-1;
+               }
+
+               public override void AddRange (Array values)
+               {
+                       foreach (TParameter p in values)
+                               Add (p);
+               }
+
+               public override void Clear ()
+               {
+                       parameters.Clear ();
+               }
+
+               public override bool Contains (object value)
+               {
+                       return parameters.Contains ((TParameter) value);
+               }
+
+               public override bool Contains (string value)
+               {
+                       return parameters.Any (p => p.ParameterName == value);
+               }
+
+               public override void CopyTo (Array array, int index)
+               {
+                       ((ICollection) parameters).CopyTo (array, index);
+               }
+
+               public override IEnumerator GetEnumerator ()
+               {
+                       return parameters.GetEnumerator ();
+               }
+
+               public override int IndexOf (object value)
+               {
+                       return parameters.IndexOf ((TParameter) value);
+               }
+
+               public override int IndexOf (string value)
+               {
+                       for (int i = 0; i < parameters.Count; ++i)
+                               if (parameters [i].ParameterName == value)
+                                       return i;
+                       return -1;
+               }
+
+               public override void Insert (int index, object value)
+               {
+                       parameters.Insert (index, (TParameter) value);
+               }
+
+               public override void Remove (object value)
+               {
+                       parameters.Remove ((TParameter) value);
+               }
+
+               public override void RemoveAt (int index)
+               {
+                       parameters.RemoveAt (index);
+               }
+
+               public override void RemoveAt (string value)
+               {
+                       int idx = IndexOf (value);
+                       if (idx >= 0)
+                               parameters.RemoveAt (idx);
+               }
+
+               protected override DbParameter GetParameter (int index)
+               {
+                       return parameters [index];
+               }
+
+               protected override DbParameter GetParameter (string value)
+               {
+                       return parameters.Where (p => p.ParameterName == value)
+                               .FirstOrDefault ();
+               }
+
+               protected override void SetParameter (int index, DbParameter value)
+               {
+                       parameters [index] = (TParameter) value;
+               }
+
+               protected override void SetParameter (string index, DbParameter value)
+               {
+                       parameters [IndexOf (value)] = (TParameter) value;
+               }
+       }
+
+       class NullCommand : DbCommand
+       {
+               DbParameterCollection<NullParameter> parameters = new DbParameterCollection<NullParameter> ();
+
+               public NullCommand ()
+               {
+               }
+
+               public override string CommandText { get; set; }
+               public override int CommandTimeout { get; set; }
+               public override CommandType CommandType { get; set; }
+               public override bool DesignTimeVisible { get; set; }
+               public override UpdateRowSource UpdatedRowSource { get; set; }
+
+               protected override DbConnection DbConnection { get; set; }
+               protected override DbParameterCollection DbParameterCollection {get {return parameters;}}
+               protected override DbTransaction DbTransaction { get; set; }
+
+               public override void Cancel ()
+               {
+               }
+
+               public override int ExecuteNonQuery ()
+               {
+                       throw new NotSupportedException ();
+               }
+
+               public override object ExecuteScalar ()
+               {
+                       throw new NotSupportedException ();
+               }
+
+               public override void Prepare ()
+               {
+               }
+
+               protected override DbParameter CreateDbParameter ()
+               {
+                       return new NullParameter ();
+               }
+
+               protected override DbDataReader ExecuteDbDataReader (CommandBehavior behavior)
+               {
+                       throw new NotSupportedException ();
+               }
+       }
+}
+
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/PeopleTable.cs b/mcs/class/System.Data.Linq/src/DbLinq/Test/PeopleTable.cs
new file mode 100755 (executable)
index 0000000..9e06c58
--- /dev/null
@@ -0,0 +1,63 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2009 Novell, Inc.\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Data;\r
+using System.Data.Common;\r
+// using System.Data.Linq;\r
+using System.Data.Linq.Mapping;\r
+using System.Linq;\r
+using System.IO;\r
+\r
+#if MONO_STRICT\r
+using System.Data.Linq;\r
+#else\r
+using DbLinq.Data.Linq;\r
+#endif\r
+\r
+using NUnit.Framework;\r
+\r
+using DbLinq.Null;\r
+\r
+namespace DbLinqTest {\r
+\r
+    [Table(Name="people")]\r
+    class BadPerson\r
+    {\r
+        public string FirstName {get; set;}\r
+        public string LastName {get; set;}\r
+    }\r
+\r
+    [Table(Name="people")]\r
+    class Person\r
+    {\r
+        [Column(Name="first_name")]\r
+        public string FirstName {get; set;}\r
+        [Column(Name="last_name")]\r
+        public string LastName {get; set;}\r
+    }\r
+}\r
+\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/Properties/AssemblyInfo.cs b/mcs/class/System.Data.Linq/src/DbLinq/Test/Properties/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..0dcd4ed
--- /dev/null
@@ -0,0 +1,35 @@
+using System.Reflection;\r
+using System.Runtime.CompilerServices;\r
+using System.Runtime.InteropServices;\r
+\r
+// General Information about an assembly is controlled through the following \r
+// set of attributes. Change these attribute values to modify the information\r
+// associated with an assembly.\r
+[assembly: AssemblyTitle("DbLinqTest")]\r
+[assembly: AssemblyDescription("")]\r
+[assembly: AssemblyConfiguration("")]\r
+[assembly: AssemblyCompany("")]\r
+[assembly: AssemblyProduct("DbLinqTest")]\r
+[assembly: AssemblyCopyright("Copyright ©  2008")]\r
+[assembly: AssemblyTrademark("")]\r
+[assembly: AssemblyCulture("")]\r
+\r
+// Setting ComVisible to false makes the types in this assembly not visible \r
+// to COM componenets.  If you need to access a type in this assembly from \r
+// COM, set the ComVisible attribute to true on that type.\r
+[assembly: ComVisible(false)]\r
+\r
+// The following GUID is for the ID of the typelib if this project is exposed to COM\r
+[assembly: Guid("52112670-1196-4229-ae51-535cf23869cb")]\r
+\r
+// Version information for an assembly consists of the following four values:\r
+//\r
+//      Major Version\r
+//      Minor Version \r
+//      Build Number\r
+//      Revision\r
+//\r
+// You can specify all the values or you can default the Revision and Build Numbers \r
+// by using the '*' as shown below:\r
+[assembly: AssemblyVersion("1.0.0.0")]\r
+[assembly: AssemblyFileVersion("1.0.0.0")]\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/Test References/DbLinq.accessor b/mcs/class/System.Data.Linq/src/DbLinq/Test/Test References/DbLinq.accessor
new file mode 100644 (file)
index 0000000..5207a14
--- /dev/null
@@ -0,0 +1,2 @@
+DbLinq.dll\r
+Desktop\r
diff --git a/mcs/class/System.Data.Linq/src/DbLinq/Test/TypeContextTest.cs b/mcs/class/System.Data.Linq/src/DbLinq/Test/TypeContextTest.cs
new file mode 100644 (file)
index 0000000..a0b8c4c
--- /dev/null
@@ -0,0 +1,66 @@
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System.Globalization;\r
+using DbLinq.Schema;\r
+using DbLinq.Schema.Implementation;\r
+using DbLinq.Util;\r
+using Microsoft.VisualStudio.TestTools.UnitTesting;\r
+using NUnit.Framework;\r
+using Assert = NUnit.Framework.Assert;\r
+\r
+namespace DbLinqTest\r
+{\r
+    /// <summary>\r
+    /// Summary description for TypeContextTest\r
+    /// </summary>\r
+    [TestFixture]\r
+    [TestClass]\r
+    public class TypeContextTest\r
+    {\r
+        public enum SomeEnum\r
+        {\r
+            A = 1,\r
+            B = 2,\r
+        }\r
+\r
+        [TestMethod]\r
+        [Test]\r
+        public void ToEnumTest1()\r
+        {\r
+            var e = TypeConvert.ToEnum<SomeEnum>("B");\r
+            Assert.AreEqual(SomeEnum.B, e);\r
+        }\r
+\r
+        [TestMethod]\r
+        [Test]\r
+        public void ToEnumTest2()\r
+        {\r
+            var e = TypeConvert.ToEnum<SomeEnum>(2);\r
+            Assert.AreEqual(SomeEnum.B, e);\r
+        }\r
+    }\r
+}\r
index ab083a30e3e60aecdb7ef9b632cbdebb0256881d..ce085f28b20eb1650e9794912b4a1404e625f812 100644 (file)
@@ -1,84 +1,84 @@
-#region MIT license
-// 
-// MIT license
-//
-// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-// 
-#endregion
-
-using System.Collections.Generic;
-using System.Linq.Expressions;
-#if MONO_STRICT
-using System.Data.Linq.Sugar;
-#else
-using DbLinq.Data.Linq.Sugar;
-#endif
-
-
-namespace DbLinq.Util
-{
-    /// <summary>
-    /// Provides IEqualityComparer for ExpressionChain class
-    /// </summary>
-    internal class ExpressionChainEqualityComparer : IEqualityComparer<ExpressionChain>
-    {
-        private readonly IEqualityComparer<Expression> expressionComparer = new ExpressionEqualityComparer();
-
-        /// <summary>
-        /// Determines whether the specified objects are equal.
-        /// </summary>
-        /// <param name="x">The first object of type <paramref name="T"/> to compare.</param>
-        /// <param name="y">The second object of type <paramref name="T"/> to compare.</param>
-        /// <returns>
-        /// true if the specified objects are equal; otherwise, false.
-        /// </returns>
-        public bool Equals(ExpressionChain x, ExpressionChain y)
-        {
-            // if not same count, expression chains are different
-            if (x.Expressions.Count != y.Expressions.Count)
-                return false;
-
-            for (int index = 0; index < x.Expressions.Count; index++)
-            {
-                if (!expressionComparer.Equals(x.Expressions[index], y.Expressions[index]))
-                    return false;
-            }
-
-            return true;
-        }
-
-        /// <summary>
-        /// Returns a hash code for the specified object.
-        /// </summary>
-        /// <param name="obj">The <see cref="T:System.Object"/> for which a hash code is to be returned.</param>
-        /// <returns>A hash code for the specified object.</returns>
-        public int GetHashCode(ExpressionChain obj)
-        {
-            int hash = 0;
-            foreach (var expression in obj.Expressions)
-            {
-                hash <<= 3;
-                hash ^= expressionComparer.GetHashCode(expression);
-            }
-            return hash;
-        }
-    }
-}
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System.Collections.Generic;\r
+using System.Linq.Expressions;\r
+#if MONO_STRICT\r
+using System.Data.Linq.Sugar;\r
+#else\r
+using DbLinq.Data.Linq.Sugar;\r
+#endif\r
+\r
+\r
+namespace DbLinq.Util\r
+{\r
+    /// <summary>\r
+    /// Provides IEqualityComparer for ExpressionChain class\r
+    /// </summary>\r
+    internal class ExpressionChainEqualityComparer : IEqualityComparer<ExpressionChain>\r
+    {\r
+        private readonly IEqualityComparer<Expression> expressionComparer = new ExpressionEqualityComparer();\r
+\r
+        /// <summary>\r
+        /// Determines whether the specified objects are equal.\r
+        /// </summary>\r
+        /// <param name="x">The first object of type <paramref name="T"/> to compare.</param>\r
+        /// <param name="y">The second object of type <paramref name="T"/> to compare.</param>\r
+        /// <returns>\r
+        /// true if the specified objects are equal; otherwise, false.\r
+        /// </returns>\r
+        public bool Equals(ExpressionChain x, ExpressionChain y)\r
+        {\r
+            // if not same count, expression chains are different\r
+            if (x.Expressions.Count != y.Expressions.Count)\r
+                return false;\r
+\r
+            for (int index = 0; index < x.Expressions.Count; index++)\r
+            {\r
+                if (!expressionComparer.Equals(x.Expressions[index], y.Expressions[index]))\r
+                    return false;\r
+            }\r
+\r
+            return true;\r
+        }\r
+\r
+        /// <summary>\r
+        /// Returns a hash code for the specified object.\r
+        /// </summary>\r
+        /// <param name="obj">The <see cref="T:System.Object"/> for which a hash code is to be returned.</param>\r
+        /// <returns>A hash code for the specified object.</returns>\r
+        public int GetHashCode(ExpressionChain obj)\r
+        {\r
+            int hash = 0;\r
+            foreach (var expression in obj.Expressions)\r
+            {\r
+                hash <<= 3;\r
+                hash ^= expressionComparer.GetHashCode(expression);\r
+            }\r
+            return hash;\r
+        }\r
+    }\r
+}\r
index e26595a1a9205722519170132be7ea3403b28025..a5ba22f7c09013206cb8705ed932d9ac3984e4c9 100644 (file)
-#region MIT license
-// 
-// MIT license
-//
-// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-// 
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Linq.Expressions;
-#if MONO_STRICT
-using System.Data.Linq.Implementation;
-#else
-using DbLinq.Data.Linq.Implementation;
-#endif
-
-namespace DbLinq.Util
-{
-    /// <summary>
-    /// IEqualityComparer implementation for Expression
-    /// </summary>
-    internal class ExpressionEqualityComparer : IEqualityComparer<Expression>
-    {
-        /// <summary>
-        /// Determines whether the specified objects are equal.
-        /// </summary>
-        /// <param name="x">The first object of type <paramref name="T"/> to compare.</param>
-        /// <param name="y">The second object of type <paramref name="T"/> to compare.</param>
-        /// <returns>
-        /// true if the specified objects are equal; otherwise, false.
-        /// </returns>
-        public bool Equals(Expression x, Expression y)
-        {
-            // both nulls? comparison is OK
-            if (x == null && y == null)
-                return true;
-
-            if (x == null && y != null)
-                return false;
-
-            if (x != null && y == null)
-                return false;
-
-            // first thing: check types
-            if (x.GetType() != y.GetType())
-                return false;
-
-            // then check node types
-            if (x.NodeType != y.NodeType)
-                return false;
-
-            // finally, check expression types
-            if (x.Type != y.Type)
-                return false;
-
-            // then for each expression subtype, check members
-            if (x is BinaryExpression)
-                return Equals2((BinaryExpression)x, (BinaryExpression)y);
-            if (x is ConditionalExpression)
-                return Equals2((ConditionalExpression)x, (ConditionalExpression)y);
-            if (x is ConstantExpression)
-                return Equals2((ConstantExpression)x, (ConstantExpression)y);
-            if (x is InvocationExpression)
-                return Equals2((InvocationExpression)x, (InvocationExpression)y);
-            if (x is LambdaExpression)
-                return Equals2((LambdaExpression)x, (LambdaExpression)y);
-            if (x is ListInitExpression)
-                return Equals2((ListInitExpression)x, (ListInitExpression)y);
-            if (x is MemberExpression)
-                return Equals2((MemberExpression)x, (MemberExpression)y);
-            if (x is MemberInitExpression)
-                return Equals2((MemberInitExpression)x, (MemberInitExpression)y);
-            if (x is MethodCallExpression)
-                return Equals2((MethodCallExpression)x, (MethodCallExpression)y);
-            if (x is NewArrayExpression)
-                return Equals2((NewArrayExpression)x, (NewArrayExpression)y);
-            if (x is NewExpression)
-                return Equals2((NewExpression)x, (NewExpression)y);
-            if (x is ParameterExpression)
-                return Equals2((ParameterExpression)x, (ParameterExpression)y);
-            if (x is TypeBinaryExpression)
-                return Equals2((TypeBinaryExpression)x, (TypeBinaryExpression)y);
-            if (x is UnaryExpression)
-                return Equals2((UnaryExpression)x, (UnaryExpression)y);
-            throw new ArgumentException(string.Format("Unknown Expression type ({0})", x.GetType()));
-        }
-
-        private bool Equals2(BinaryExpression x, BinaryExpression y)
-        {
-            if (x.IsLifted != y.IsLifted)
-                return false;
-
-            if (x.IsLiftedToNull != y.IsLiftedToNull)
-                return false;
-
-            if (x.Method != y.Method)
-                return false;
-
-            if (!Equals(x.Conversion, y.Conversion))
-                return false;
-
-            if (!Equals(x.Left, y.Left))
-                return false;
-
-            if (!Equals(x.Right, y.Right))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(ConditionalExpression x, ConditionalExpression y)
-        {
-            if (!Equals(x.Test, y.Test))
-                return false;
-
-            if (!Equals(x.IfTrue, y.IfTrue))
-                return false;
-
-            if (!Equals(x.IfFalse, y.IfFalse))
-                return false;
-
-            return true;
-        }
-
-        /// <summary>
-        /// Objects comparer, with special hints
-        /// </summary>
-        /// <param name="x"></param>
-        /// <param name="y"></param>
-        /// <returns></returns>
-        private bool ObjectsEquals(object x, object y)
-        {
-            if (x == null && y == null)
-                return true;
-
-            if (x != null && y == null)
-                return false;
-            if (x == null && y != null)
-                return false;
-
-            if (x.GetType() != y.GetType())
-                return false;
-
-            if (x is Expression)
-                return Equals((Expression)x, (Expression)y);
-
-            if (x is QueryProvider)
-                return new ExpressionChainEqualityComparer().Equals(((QueryProvider)x).ExpressionChain, ((QueryProvider)y).ExpressionChain);
-
-            return Equals(x, y);
-        }
-
-        private bool Equals2(ConstantExpression x, ConstantExpression y)
-        {
-            return ObjectsEquals(x.Value, y.Value);
-        }
-
-        /// <summary>
-        /// Determines if the two lists contain indentical data.
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="xs">The xs.</param>
-        /// <param name="ys">The ys.</param>
-        /// <param name="equals2">The equals2.</param>
-        /// <returns></returns>
-        private bool Equals2<T>(IList<T> xs, IList<T> ys, Func<T, T, bool> equals2)
-        {
-            if (xs.Count != ys.Count)
-                return false;
-
-            for (int index = 0; index < xs.Count; index++)
-            {
-                if (!equals2(xs[index], ys[index]))
-                    return false;
-            }
-            return true;
-        }
-
-        private bool Equals2(InvocationExpression x, InvocationExpression y)
-        {
-            if (!Equals(x.Expression, y.Expression))
-                return false;
-
-            if (!Equals2(x.Arguments, y.Arguments))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(LambdaExpression x, LambdaExpression y)
-        {
-            if (!Equals(x.Body, y.Body))
-                return false;
-
-            if (!Equals2(x.Parameters, y.Parameters, Equals2))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(ListInitExpression x, ListInitExpression y)
-        {
-            if (!Equals(x.NewExpression, y.NewExpression))
-                return false;
-
-            if (!Equals(x.Initializers, y.Initializers))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(ElementInit x, ElementInit y)
-        {
-            if (x.AddMethod != y.AddMethod)
-                return false;
-
-            if (!Equals2(x.Arguments, y.Arguments))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(MemberExpression x, MemberExpression y)
-        {
-            if (x.Member != y.Member)
-                return false;
-
-            if (!Equals(x.Expression, y.Expression))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(MemberInitExpression x, MemberInitExpression y)
-        {
-            if (!Equals(x.NewExpression, y.NewExpression))
-                return false;
-
-            if (!Equals2(x.Bindings, y.Bindings))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(IList<MemberBinding> xs, IList<MemberBinding> ys)
-        {
-            return Equals2(xs, ys, Equals2);
-        }
-
-        private bool Equals2(MemberBinding x, MemberBinding y)
-        {
-            if (x.BindingType != y.BindingType)
-                return false;
-
-            if (x.Member != y.Member)
-                return false;
-
-            if (x.GetType() != y.GetType())
-                return false;
-
-            if (x is MemberAssignment)
-                return Equals2((MemberAssignment)x, (MemberAssignment)y);
-            if (x is MemberListBinding)
-                return Equals2((MemberListBinding)x, (MemberListBinding)y);
-            if (x is MemberMemberBinding)
-                return Equals2((MemberMemberBinding)x, (MemberMemberBinding)y);
-
-            throw new ArgumentException(string.Format("Equals2(): unsupported MemberBinding subtype ({0})", x.GetType()));
-        }
-
-        private bool Equals2(MemberAssignment x, MemberAssignment y)
-        {
-            return Equals(x.Expression, y.Expression);
-        }
-
-        private bool Equals2(MemberListBinding x, MemberListBinding y)
-        {
-            if (!Equals2(x.Initializers, y.Initializers, Equals2))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(MemberMemberBinding x, MemberMemberBinding y)
-        {
-            if (!Equals2(x.Bindings, y.Bindings, Equals2))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(MethodCallExpression x, MethodCallExpression y)
-        {
-            if (x.Method != y.Method)
-                return false;
-
-            if (!Equals(x.Object, y.Object))
-                return false;
-
-            if (!Equals2(x.Arguments, y.Arguments))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(NewArrayExpression x, NewArrayExpression y)
-        {
-            if (!Equals2(x.Expressions, y.Expressions))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(IList<Expression> xs, IList<Expression> ys)
-        {
-            return Equals2(xs, ys, Equals);
-        }
-
-        private bool Equals2(NewExpression x, NewExpression y)
-        {
-            if (x.Constructor != y.Constructor)
-                return false;
-
-            if (!Equals2(x.Arguments, y.Arguments))
-                return false;
-
-            if (!Equals2(x.Members, y.Members, (mx, my) => mx == my))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(ParameterExpression x, ParameterExpression y)
-        {
-            if (x.Name != y.Name)
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(TypeBinaryExpression x, TypeBinaryExpression y)
-        {
-            if (x.TypeOperand != y.TypeOperand)
-                return false;
-
-            if (!Equals(x.Expression, y.Expression))
-                return false;
-
-            return true;
-        }
-
-        private bool Equals2(UnaryExpression x, UnaryExpression y)
-        {
-            if (x.IsLifted != y.IsLifted)
-                return false;
-
-            if (x.IsLiftedToNull != y.IsLiftedToNull)
-                return false;
-
-            if (x.Method != y.Method)
-                return false;
-
-            if (!Equals(x.Operand, y.Operand))
-                return false;
-
-            return true;
-        }
-
-        /// <summary>
-        /// Returns a hash code for the specified object.
-        /// </summary>
-        /// <param name="obj">The <see cref="T:System.Object"/> for which a hash code is to be returned.</param>
-        /// <returns>A hash code for the specified object.</returns>
-        /// <exception cref="T:System.ArgumentNullException">
-        /// The type of <paramref name="obj"/> is a reference type and <paramref name="obj"/> is null.
-        /// </exception>
-        public int GetHashCode(Expression obj)
-        {
-            return (int)obj.NodeType ^ obj.GetType().GetHashCode();
-        }
-    }
-}
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Linq.Expressions;\r
+#if MONO_STRICT\r
+using System.Data.Linq.Implementation;\r
+#else\r
+using DbLinq.Data.Linq.Implementation;\r
+#endif\r
+\r
+namespace DbLinq.Util\r
+{\r
+    /// <summary>\r
+    /// IEqualityComparer implementation for Expression\r
+    /// </summary>\r
+    internal class ExpressionEqualityComparer : IEqualityComparer<Expression>\r
+    {\r
+        /// <summary>\r
+        /// Determines whether the specified objects are equal.\r
+        /// </summary>\r
+        /// <param name="x">The first object of type <paramref name="T"/> to compare.</param>\r
+        /// <param name="y">The second object of type <paramref name="T"/> to compare.</param>\r
+        /// <returns>\r
+        /// true if the specified objects are equal; otherwise, false.\r
+        /// </returns>\r
+        public bool Equals(Expression x, Expression y)\r
+        {\r
+            // both nulls? comparison is OK\r
+            if (x == null && y == null)\r
+                return true;\r
+\r
+            if (x == null && y != null)\r
+                return false;\r
+\r
+            if (x != null && y == null)\r
+                return false;\r
+\r
+            // first thing: check types\r
+            if (x.GetType() != y.GetType())\r
+                return false;\r
+\r
+            // then check node types\r
+            if (x.NodeType != y.NodeType)\r
+                return false;\r
+\r
+            // finally, check expression types\r
+            if (x.Type != y.Type)\r
+                return false;\r
+\r
+            // then for each expression subtype, check members\r
+            if (x is BinaryExpression)\r
+                return Equals2((BinaryExpression)x, (BinaryExpression)y);\r
+            if (x is ConditionalExpression)\r
+                return Equals2((ConditionalExpression)x, (ConditionalExpression)y);\r
+            if (x is ConstantExpression)\r
+                return Equals2((ConstantExpression)x, (ConstantExpression)y);\r
+            if (x is InvocationExpression)\r
+                return Equals2((InvocationExpression)x, (InvocationExpression)y);\r
+            if (x is LambdaExpression)\r
+                return Equals2((LambdaExpression)x, (LambdaExpression)y);\r
+            if (x is ListInitExpression)\r
+                return Equals2((ListInitExpression)x, (ListInitExpression)y);\r
+            if (x is MemberExpression)\r
+                return Equals2((MemberExpression)x, (MemberExpression)y);\r
+            if (x is MemberInitExpression)\r
+                return Equals2((MemberInitExpression)x, (MemberInitExpression)y);\r
+            if (x is MethodCallExpression)\r
+                return Equals2((MethodCallExpression)x, (MethodCallExpression)y);\r
+            if (x is NewArrayExpression)\r
+                return Equals2((NewArrayExpression)x, (NewArrayExpression)y);\r
+            if (x is NewExpression)\r
+                return Equals2((NewExpression)x, (NewExpression)y);\r
+            if (x is ParameterExpression)\r
+                return Equals2((ParameterExpression)x, (ParameterExpression)y);\r
+            if (x is TypeBinaryExpression)\r
+                return Equals2((TypeBinaryExpression)x, (TypeBinaryExpression)y);\r
+            if (x is UnaryExpression)\r
+                return Equals2((UnaryExpression)x, (UnaryExpression)y);\r
+            throw new ArgumentException(string.Format("Unknown Expression type ({0})", x.GetType()));\r
+        }\r
+\r
+        private bool Equals2(BinaryExpression x, BinaryExpression y)\r
+        {\r
+            if (x.IsLifted != y.IsLifted)\r
+                return false;\r
+\r
+            if (x.IsLiftedToNull != y.IsLiftedToNull)\r
+                return false;\r
+\r
+            if (x.Method != y.Method)\r
+                return false;\r
+\r
+            if (!Equals(x.Conversion, y.Conversion))\r
+                return false;\r
+\r
+            if (!Equals(x.Left, y.Left))\r
+                return false;\r
+\r
+            if (!Equals(x.Right, y.Right))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(ConditionalExpression x, ConditionalExpression y)\r
+        {\r
+            if (!Equals(x.Test, y.Test))\r
+                return false;\r
+\r
+            if (!Equals(x.IfTrue, y.IfTrue))\r
+                return false;\r
+\r
+            if (!Equals(x.IfFalse, y.IfFalse))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        /// <summary>\r
+        /// Objects comparer, with special hints\r
+        /// </summary>\r
+        /// <param name="x"></param>\r
+        /// <param name="y"></param>\r
+        /// <returns></returns>\r
+        private bool ObjectsEquals(object x, object y)\r
+        {\r
+            if (x == null && y == null)\r
+                return true;\r
+\r
+            if (x != null && y == null)\r
+                return false;\r
+            if (x == null && y != null)\r
+                return false;\r
+\r
+            if (x.GetType() != y.GetType())\r
+                return false;\r
+\r
+            if (x is Expression)\r
+                return Equals((Expression)x, (Expression)y);\r
+\r
+            if (x is QueryProvider)\r
+                return new ExpressionChainEqualityComparer().Equals(((QueryProvider)x).ExpressionChain, ((QueryProvider)y).ExpressionChain);\r
+\r
+            return Equals(x, y);\r
+        }\r
+\r
+        private bool Equals2(ConstantExpression x, ConstantExpression y)\r
+        {\r
+            return ObjectsEquals(x.Value, y.Value);\r
+        }\r
+\r
+        /// <summary>\r
+        /// Determines if the two lists contain indentical data.\r
+        /// </summary>\r
+        /// <typeparam name="T"></typeparam>\r
+        /// <param name="xs">The xs.</param>\r
+        /// <param name="ys">The ys.</param>\r
+        /// <param name="equals2">The equals2.</param>\r
+        /// <returns></returns>\r
+        private bool Equals2<T>(IList<T> xs, IList<T> ys, Func<T, T, bool> equals2)\r
+        {\r
+            if (xs == null || ys == null)\r
+                return false;\r
+            if (xs.Count != ys.Count)\r
+                return false;\r
+\r
+            for (int index = 0; index < xs.Count; index++)\r
+            {\r
+                if (!equals2(xs[index], ys[index]))\r
+                    return false;\r
+            }\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(InvocationExpression x, InvocationExpression y)\r
+        {\r
+            if (!Equals(x.Expression, y.Expression))\r
+                return false;\r
+\r
+            if (!Equals2(x.Arguments, y.Arguments))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(LambdaExpression x, LambdaExpression y)\r
+        {\r
+            if (!Equals(x.Body, y.Body))\r
+                return false;\r
+\r
+            if (!Equals2(x.Parameters, y.Parameters, Equals2))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(ListInitExpression x, ListInitExpression y)\r
+        {\r
+            if (!Equals(x.NewExpression, y.NewExpression))\r
+                return false;\r
+\r
+            if (!Equals(x.Initializers, y.Initializers))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(ElementInit x, ElementInit y)\r
+        {\r
+            if (x.AddMethod != y.AddMethod)\r
+                return false;\r
+\r
+            if (!Equals2(x.Arguments, y.Arguments))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(MemberExpression x, MemberExpression y)\r
+        {\r
+            if (x.Member != y.Member)\r
+                return false;\r
+\r
+            if (!Equals(x.Expression, y.Expression))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(MemberInitExpression x, MemberInitExpression y)\r
+        {\r
+            if (!Equals(x.NewExpression, y.NewExpression))\r
+                return false;\r
+\r
+            if (!Equals2(x.Bindings, y.Bindings))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(IList<MemberBinding> xs, IList<MemberBinding> ys)\r
+        {\r
+            return Equals2(xs, ys, Equals2);\r
+        }\r
+\r
+        private bool Equals2(MemberBinding x, MemberBinding y)\r
+        {\r
+            if (x.BindingType != y.BindingType)\r
+                return false;\r
+\r
+            if (x.Member != y.Member)\r
+                return false;\r
+\r
+            if (x.GetType() != y.GetType())\r
+                return false;\r
+\r
+            if (x is MemberAssignment)\r
+                return Equals2((MemberAssignment)x, (MemberAssignment)y);\r
+            if (x is MemberListBinding)\r
+                return Equals2((MemberListBinding)x, (MemberListBinding)y);\r
+            if (x is MemberMemberBinding)\r
+                return Equals2((MemberMemberBinding)x, (MemberMemberBinding)y);\r
+\r
+            throw new ArgumentException(string.Format("Equals2(): unsupported MemberBinding subtype ({0})", x.GetType()));\r
+        }\r
+\r
+        private bool Equals2(MemberAssignment x, MemberAssignment y)\r
+        {\r
+            return Equals(x.Expression, y.Expression);\r
+        }\r
+\r
+        private bool Equals2(MemberListBinding x, MemberListBinding y)\r
+        {\r
+            if (!Equals2(x.Initializers, y.Initializers, Equals2))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(MemberMemberBinding x, MemberMemberBinding y)\r
+        {\r
+            if (!Equals2(x.Bindings, y.Bindings, Equals2))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(MethodCallExpression x, MethodCallExpression y)\r
+        {\r
+            if (x.Method != y.Method)\r
+                return false;\r
+\r
+            if (!Equals(x.Object, y.Object))\r
+                return false;\r
+\r
+            if (!Equals2(x.Arguments, y.Arguments))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(NewArrayExpression x, NewArrayExpression y)\r
+        {\r
+            if (!Equals2(x.Expressions, y.Expressions))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(IList<Expression> xs, IList<Expression> ys)\r
+        {\r
+            return Equals2(xs, ys, Equals);\r
+        }\r
+\r
+        private bool Equals2(NewExpression x, NewExpression y)\r
+        {\r
+            if (x.Constructor != y.Constructor)\r
+                return false;\r
+\r
+            if (!Equals2(x.Arguments, y.Arguments))\r
+                return false;\r
+\r
+            if (!Equals2(x.Members, y.Members, (mx, my) => mx == my))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(ParameterExpression x, ParameterExpression y)\r
+        {\r
+            if (x.Name != y.Name)\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(TypeBinaryExpression x, TypeBinaryExpression y)\r
+        {\r
+            if (x.TypeOperand != y.TypeOperand)\r
+                return false;\r
+\r
+            if (!Equals(x.Expression, y.Expression))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        private bool Equals2(UnaryExpression x, UnaryExpression y)\r
+        {\r
+            if (x.IsLifted != y.IsLifted)\r
+                return false;\r
+\r
+            if (x.IsLiftedToNull != y.IsLiftedToNull)\r
+                return false;\r
+\r
+            if (x.Method != y.Method)\r
+                return false;\r
+\r
+            if (!Equals(x.Operand, y.Operand))\r
+                return false;\r
+\r
+            return true;\r
+        }\r
+\r
+        /// <summary>\r
+        /// Returns a hash code for the specified object.\r
+        /// </summary>\r
+        /// <param name="obj">The <see cref="T:System.Object"/> for which a hash code is to be returned.</param>\r
+        /// <returns>A hash code for the specified object.</returns>\r
+        /// <exception cref="T:System.ArgumentNullException">\r
+        /// The type of <paramref name="obj"/> is a reference type and <paramref name="obj"/> is null.\r
+        /// </exception>\r
+        public int GetHashCode(Expression obj)\r
+        {\r
+            return (int)obj.NodeType ^ obj.GetType().GetHashCode();\r
+        }\r
+    }\r
+}\r
index 93a1421cc916d7f75e21e5612efee12923e4e738..aa2cfc87e062c14863126e0f8d572656d1f8156b 100644 (file)
@@ -66,34 +66,39 @@ namespace DbLinq.Util
         }\r
 \r
         /// <summary>\r
-        /// Extracts a MemberInfo with more or less digging\r
+        /// Returns MemberInfo specified in the lambda, optional parameter expression constraint.\r
         /// </summary>\r
         /// <param name="expression"></param>\r
         /// <returns></returns>\r
-        private static MemberInfo GetMemberInfo(Expression expression)\r
+        public static MemberInfo GetMemberInfo(LambdaExpression expression)\r
         {\r
-            switch (expression.NodeType)\r
-            {\r
-            // the ReflectionUtility Get** methods return the value as a object. If the value is a struct, we get a cast,\r
-            // that we must unwrap\r
-            case ExpressionType.Convert:\r
-            case ExpressionType.ConvertChecked:\r
-                return GetMemberInfo(((UnaryExpression)expression).Operand);\r
-            case ExpressionType.MemberAccess:\r
-                return ((MemberExpression)expression).Member;\r
-            default:\r
-                return null;\r
-            }\r
+            var paramExpr = expression.Parameters.Count == 1 ? expression.Parameters[0] : null;\r
+            return GetMemberInfo(paramExpr, expression.Body);\r
         }\r
 \r
         /// <summary>\r
-        /// Returns MemberInfo specified in the lambda\r
+        /// Returns MemberInfo specified in the lambda, optional parameter expression constraint.\r
         /// </summary>\r
         /// <param name="lambdaExpression"></param>\r
         /// <returns></returns>\r
-        public static MemberInfo GetMemberInfo(LambdaExpression lambdaExpression)\r
+        private static MemberInfo GetMemberInfo(Expression optionalParamExpr, Expression expression)\r
         {\r
-            return GetMemberInfo(lambdaExpression.Body);\r
+            switch (expression.NodeType)\r
+            {\r
+                // the ReflectionUtility Get** methods return the value as a object. If the value is a struct, we get a cast,\r
+                // that we must unwrap\r
+                case ExpressionType.Convert:\r
+                case ExpressionType.ConvertChecked:\r
+                    return GetMemberInfo(optionalParamExpr, ((UnaryExpression)expression).Operand);\r
+                case ExpressionType.MemberAccess:\r
+                    var me = (MemberExpression)expression;\r
+                    if (optionalParamExpr == null || me.Expression == optionalParamExpr)\r
+                        return me.Member;\r
+                    else\r
+                        return null;\r
+                default:\r
+                    return null;\r
+            }\r
         }\r
 \r
         /// <summary>\r
index 904babb484056269067e2a638e6b08ebd4e18e1c..df4a1c9d7650034abff979985b82ca0850b081f7 100644 (file)
@@ -58,6 +58,7 @@ namespace DbLinq.Util
                 case System.Globalization.UnicodeCategory.LetterNumber:\r
                 case System.Globalization.UnicodeCategory.LowercaseLetter:\r
                 case System.Globalization.UnicodeCategory.UppercaseLetter:\r
+                case System.Globalization.UnicodeCategory.ConnectorPunctuation:\r
                     break;\r
                 default:\r
                     return false;\r
index 281c0d1e0b23980be341d763f267cbadfd34abdb..4d1904a442c5c71e2f41d74d7c53d947d876330b 100644 (file)
-#region MIT license
-// 
-// MIT license
-//
-// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne
-// 
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-// 
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-// 
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Reflection;
-using System.Text.RegularExpressions;
-
-namespace DbLinq.Vendor.Implementation
-{
-    partial class SchemaLoader
-    {
-        /// <summary>
-        /// This class is used as fallback when no matching type was found.
-        /// If we have the case, then something is missing from DbMetal
-        /// </summary>
-        internal class UnknownType
-        {
-        }
-
-        /// <summary>
-        /// Default IDataType implementation (see IDataType for details)
-        /// </summary>
-#if MONO_STRICT
-        internal
-#else
-        public
-#endif
-        class DataType : IDataType
-        {
-            public virtual string Type { get; set; }
-            public virtual bool Nullable { get; set; }
-            public virtual long? Length { get; set; }
-            public virtual int? Precision { get; set; }
-            public virtual int? Scale { get; set; }
-            public virtual bool? Unsigned { get; set; }
-            public string FullType { get; set; }
-        }
-
-        protected virtual Type MapDbType(string columnName, IDataType dataType)
-        {
-            if (dataType == null)
-                return typeof(UnknownType);
-            string dataTypeL = dataType.Type.ToLower();
-
-            if (columnName != null && columnName.ToLower().Contains("guid"))
-            {
-                bool correctTypeAndLen =
-                    ((dataTypeL == "char" || dataTypeL == "varchar") && dataType.Length == 36)
-                    || ((dataTypeL == "binary") && dataType.Length == 16);
-
-                if (correctTypeAndLen)
-                {
-                    Console.WriteLine("experimental support for guid--");
-                    return typeof(Guid);
-                }
-            }
-
-            switch (dataTypeL)
-            {
-            // string
-            case "c":
-            case "char":
-            case "character":
-            case "character varying":
-            case "inet":
-            case "long":
-            case "longtext":
-            case "long varchar":
-            case "nchar":
-            case "nvarchar":
-            case "nvarchar2":
-            case "string":
-            case "text":
-            case "varchar":
-            case "varchar2":
-            case "clob":    // oracle type
-            case "nclob":   // oracle type
-            case "rowid":   // oracle type
-            case "urowid":  // oracle type
-                return typeof(String);
-
-            // bool
-            case "bit":
-            case "bool":
-            case "boolean":
-                return typeof(Boolean);
-
-            // int8
-            case "tinyint":
-                if (dataType.Length == 1)
-                    return typeof(Boolean);
-                // tinyint is supposed to be signed
-                // but we can have explicit sign
-                if (dataType.Unsigned ?? false)
-                    return typeof(Byte);
-                // default case, unsigned
-                return typeof(SByte);
-
-            // int16
-            case "short":
-            case "smallint":
-                if (dataType.Unsigned ?? false)
-                    return typeof(UInt16);
-                return typeof(Int16);
-
-            // int32
-            case "int":
-            case "integer":
-            case "mediumint":
-                if (dataType.Unsigned ?? false)
-                    return typeof(UInt32);
-                return typeof(Int32);
-
-            // int64
-            case "bigint":
-                return typeof(Int64);
-
-            // single
-            case "float":
-            case "float4":
-            case "real":
-            case "binary_float":   // oracle type
-                return typeof(Single);
-
-            // double
-            case "double":
-            case "double precision":
-            case "binary_double":  // oracle type
-                return typeof(Double);
-
-            // decimal
-            case "decimal":
-            case "numeric":
-                return typeof(Decimal);
-            case "number": // special oracle type
-                if (dataType.Precision.HasValue && (dataType.Scale ?? 0) == 0)
-                {
-                    if (dataType.Precision.Value == 1)
-                        return typeof(Boolean);
-                    if (dataType.Precision.Value <= 4)
-                        return typeof(Int16);
-                    if (dataType.Precision.Value <= 9)
-                        return typeof(Int32);
-                    if (dataType.Precision.Value <= 19)
-                        return typeof(Int64);
-                }
-                return typeof(Decimal);
-
-            // time interval
-            case "interval":
-                return typeof(TimeSpan);
-
-            //enum
-            case "enum":
-                return MapEnumDbType(dataType);
-
-            // date
-            case "date":
-            case "datetime":
-            case "ingresdate":
-            case "timestamp":
-            case "timestamp without time zone":
-            case "time":
-            case "time without time zone": //reported by twain_bu...@msn.com,
-            case "time with time zone":
-                return typeof(DateTime);
-
-            // byte[]
-            case "blob":
-            case "bytea":
-            case "byte varying":
-            case "longblob":
-            case "long byte":
-            case "oid":
-            case "sytea":
-            case "mediumblob":
-            case "raw":       // oracle type
-            case "long raw":  // oracle type
-                return typeof(Byte[]);
-
-            // PostgreSQL, for example has an uuid type that can be mapped as a Guid
-            case "uuid":
-                return typeof(Guid);
-
-            case "void":
-                return null;
-
-            // if we fall to this case, we must handle the type
-            default:
-                return typeof(UnknownType);
-            }
-        }
-
-        protected class EnumType : Type
-        {
-            internal EnumType()
-            {
-                EnumValues = new Dictionary<string, int>();
-            }
-
-            public string EnumName { get; set; }
-
-            public IDictionary<string, int> EnumValues;
-
-            #region Type overrides - the ones who make sense
-
-            public override string Name
-            {
-                get { return EnumName; }
-            }
-
-            public override Type BaseType
-            {
-                get { return typeof(Enum); }
-            }
-
-            public override string FullName
-            {
-                get { return Name; } // this is a dynamic type without any qualification (namespace or assembly)
-            }
-
-            protected override bool IsArrayImpl()
-            {
-                return false;
-            }
-
-            protected override bool IsByRefImpl()
-            {
-                return false;
-            }
-
-            protected override bool IsCOMObjectImpl()
-            {
-                return false;
-            }
-
-            protected override bool IsPointerImpl()
-            {
-                return false;
-            }
-
-            protected override bool IsPrimitiveImpl()
-            {
-                return true;
-            }
-
-            #endregion
-
-            #region Type overrides - the ones we don't care about
-            public override object[] GetCustomAttributes(Type attributeType, bool inherit)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override object[] GetCustomAttributes(bool inherit)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override bool IsDefined(Type attributeType, bool inherit)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override Assembly Assembly
-            {
-                get { throw new NotImplementedException(); }
-            }
-
-            public override string AssemblyQualifiedName
-            {
-                get { throw new NotImplementedException(); }
-            }
-
-            protected override TypeAttributes GetAttributeFlagsImpl()
-            {
-                throw new NotImplementedException();
-            }
-
-            protected override ConstructorInfo GetConstructorImpl(BindingFlags bindingAttr, Binder binder,
-                                                                  CallingConventions callConvention, Type[] types,
-                                                                  ParameterModifier[] modifiers)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override ConstructorInfo[] GetConstructors(BindingFlags bindingAttr)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override Type GetElementType()
-            {
-                throw new NotImplementedException();
-            }
-
-            public override EventInfo GetEvent(string name, BindingFlags bindingAttr)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override EventInfo[] GetEvents(BindingFlags bindingAttr)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override FieldInfo GetField(string name, BindingFlags bindingAttr)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override FieldInfo[] GetFields(BindingFlags bindingAttr)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override Type GetInterface(string name, bool ignoreCase)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override Type[] GetInterfaces()
-            {
-                throw new NotImplementedException();
-            }
-
-            public override MemberInfo[] GetMembers(BindingFlags bindingAttr)
-            {
-                throw new NotImplementedException();
-            }
-
-            protected override MethodInfo GetMethodImpl(string name, BindingFlags bindingAttr, Binder binder,
-                                                        CallingConventions callConvention, Type[] types,
-                                                        ParameterModifier[] modifiers)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override MethodInfo[] GetMethods(BindingFlags bindingAttr)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override Type GetNestedType(string name, BindingFlags bindingAttr)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override Type[] GetNestedTypes(BindingFlags bindingAttr)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override PropertyInfo[] GetProperties(BindingFlags bindingAttr)
-            {
-                throw new NotImplementedException();
-            }
-
-            protected override PropertyInfo GetPropertyImpl(string name, BindingFlags bindingAttr, Binder binder,
-                                                            Type returnType, Type[] types, ParameterModifier[] modifiers)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override Guid GUID
-            {
-                get { throw new NotImplementedException(); }
-            }
-
-            protected override bool HasElementTypeImpl()
-            {
-                throw new NotImplementedException();
-            }
-
-            public override object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target,
-                                                object[] args, ParameterModifier[] modifiers, CultureInfo culture,
-                                                string[] namedParameters)
-            {
-                throw new NotImplementedException();
-            }
-
-            public override Module Module
-            {
-                get { throw new NotImplementedException(); }
-            }
-
-            public override string Namespace
-            {
-                get { throw new NotImplementedException(); }
-            }
-
-            public override Type UnderlyingSystemType
-            {
-                get { throw new NotImplementedException(); }
-            }
-            #endregion
-        }
-
-        protected static Regex DefaultEnumDefinitionEx = new Regex(@"\s*enum\s*\((?<values>.*)\s*\)\s*", RegexOptions.Compiled);
-        protected static Regex EnumValuesEx = new Regex(@"\'(?<value>\w*)\'\s*,?\s*", RegexOptions.Compiled);
-
-        /// <summary>
-        /// Maps a type to enum type, if possible.
-        /// </summary>
-        /// <param name="dataType">Type of the data.</param>
-        /// <returns></returns>
-        protected virtual EnumType MapEnumDbType(IDataType dataType)
-        {
-            var enumType = new EnumType();
-            // MySQL represents enums as follows:
-            // enum('value1','value2')
-            Match outerMatch = DefaultEnumDefinitionEx.Match(dataType.FullType);
-            if (outerMatch.Success)
-            {
-                string values = outerMatch.Groups["values"].Value;
-                var innerMatches = EnumValuesEx.Matches(values);
-                int currentValue = 1;
-                foreach (Match innerMatch in innerMatches)
-                {
-                    var value = innerMatch.Groups["value"].Value;
-                    enumType.EnumValues[value] = currentValue++;
-                }
-            }
-            return enumType;
-        }
-    }
-}
+#region MIT license\r
+// \r
+// MIT license\r
+//\r
+// Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining a copy\r
+// of this software and associated documentation files (the "Software"), to deal\r
+// in the Software without restriction, including without limitation the rights\r
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+// copies of the Software, and to permit persons to whom the Software is\r
+// furnished to do so, subject to the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be included in\r
+// all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
+// THE SOFTWARE.\r
+// \r
+#endregion\r
+\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Globalization;\r
+using System.Reflection;\r
+using System.Text.RegularExpressions;\r
+\r
+namespace DbLinq.Vendor.Implementation\r
+{\r
+    partial class SchemaLoader\r
+    {\r
+        /// <summary>\r
+        /// This class is used as fallback when no matching type was found.\r
+        /// If we have the case, then something is missing from DbMetal\r
+        /// </summary>\r
+        internal class UnknownType\r
+        {\r
+        }\r
+\r
+        /// <summary>\r
+        /// Default IDataType implementation (see IDataType for details)\r
+        /// </summary>\r
+#if MONO_STRICT\r
+        internal\r
+#else\r
+        public\r
+#endif\r
+ class DataType : IDataType\r
+        {\r
+            public virtual string Type { get; set; }\r
+            public virtual bool Nullable { get; set; }\r
+            public virtual long? Length { get; set; }\r
+            public virtual int? Precision { get; set; }\r
+            public virtual int? Scale { get; set; }\r
+            public virtual bool? Unsigned { get; set; }\r
+            public string FullType { get; set; }\r
+        }\r
+\r
+        protected virtual Type MapDbType(string columnName, IDataType dataType)\r
+        {\r
+            if (dataType == null)\r
+                return typeof(UnknownType);\r
+            string dataTypeL = dataType.Type.ToLower();\r
+\r
+            if (columnName != null && columnName.ToLower().Contains("guid"))\r
+            {\r
+                bool correctTypeAndLen =\r
+                    ((dataTypeL == "char" || dataTypeL == "varchar") && dataType.Length == 36)\r
+                    || ((dataTypeL == "binary") && dataType.Length == 16);\r
+\r
+                if (correctTypeAndLen)\r
+                {\r
+                    Console.WriteLine("experimental support for guid--");\r
+                    return typeof(Guid);\r
+                }\r
+            }\r
+\r
+            switch (dataTypeL)\r
+            {\r
+            // string\r
+            case "c":\r
+            case "char":\r
+            case "character":\r
+            case "character varying":\r
+            case "inet":\r
+            case "long":\r
+            case "longtext":\r
+            case "long varchar":\r
+            case "nchar":\r
+            case "nvarchar":\r
+            case "nvarchar2":\r
+            case "string":\r
+            case "text":\r
+            case "varchar":\r
+            case "varchar2":\r
+            case "clob":    // oracle type\r
+            case "nclob":   // oracle type\r
+            case "rowid":   // oracle type\r
+            case "urowid":  // oracle type\r
+            case "tinytext": // mysql type\r
+                return typeof(String);\r
+\r
+            // bool\r
+            case "bit":\r
+            case "bool":\r
+            case "boolean":\r
+                return typeof(Boolean);\r
+\r
+            // int8\r
+            case "tinyint":\r
+                if (dataType.Length == 1)\r
+                    return typeof(Boolean);\r
+                // tinyint is supposed to be signed\r
+                // but we can have explicit sign\r
+                if (dataType.Unsigned ?? false)\r
+                    return typeof(Byte);\r
+                // default case, unsigned\r
+                return typeof(SByte);\r
+\r
+            // int16\r
+            case "short":\r
+            case "smallint":\r
+                if (dataType.Unsigned ?? false)\r
+                    return typeof(UInt16);\r
+                return typeof(Int16);\r
+\r
+            // int32\r
+            case "int":\r
+            case "integer":\r
+            case "mediumint":\r
+                if (dataType.Unsigned ?? false)\r
+                    return typeof(UInt32);\r
+                return typeof(Int32);\r
+\r
+            // int64\r
+            case "bigint":\r
+                return typeof(Int64);\r
+\r
+            // single\r
+            case "float":\r
+            case "float4":\r
+            case "real":\r
+            case "binary_float":   // oracle type\r
+                return typeof(Single);\r
+\r
+            // double\r
+            case "double":\r
+            case "double precision":\r
+            case "binary_double":  // oracle type\r
+                return typeof(Double);\r
+\r
+            // decimal\r
+            case "decimal":\r
+            case "numeric":\r
+                return typeof(Decimal);\r
+            case "number": // special oracle type\r
+                if (dataType.Precision.HasValue && (dataType.Scale ?? 0) == 0)\r
+                {\r
+                    if (dataType.Precision.Value == 1)\r
+                        return typeof(Boolean);\r
+                    if (dataType.Precision.Value <= 4)\r
+                        return typeof(Int16);\r
+                    if (dataType.Precision.Value <= 9)\r
+                        return typeof(Int32);\r
+                    if (dataType.Precision.Value <= 19)\r
+                        return typeof(Int64);\r
+                }\r
+                return typeof(Decimal);\r
+\r
+            // time interval\r
+            case "interval":\r
+                return typeof(TimeSpan);\r
+\r
+            //enum\r
+            case "enum":\r
+                return MapEnumDbType(dataType);\r
+\r
+            // date\r
+            case "date":\r
+            case "datetime":\r
+            case "ingresdate":\r
+            case "timestamp":\r
+            case "timestamp without time zone":\r
+            case "time":\r
+            case "time without time zone": //reported by twain_bu...@msn.com,\r
+            case "time with time zone":\r
+                return typeof(DateTime);\r
+\r
+            // byte[]\r
+            case "blob":\r
+            case "bytea":\r
+            case "byte varying":\r
+            case "longblob":\r
+            case "long byte":\r
+            case "oid":\r
+            case "sytea":\r
+            case "mediumblob":\r
+            case "raw":       // oracle type\r
+            case "long raw":  // oracle type\r
+            case "varbinary":\r
+                return typeof(Byte[]);\r
+\r
+            // PostgreSQL, for example has an uuid type that can be mapped as a Guid\r
+            case "uuid":\r
+                return typeof(Guid);\r
+\r
+            case "void":\r
+                return null;\r
+\r
+            // if we fall to this case, we must handle the type\r
+            default:\r
+                return typeof(UnknownType);\r
+            }\r
+        }\r
+\r
+        protected class EnumType : Type\r
+        {\r
+            internal EnumType()\r
+            {\r
+                EnumValues = new Dictionary<string, int>();\r
+            }\r
+\r
+            public string EnumName { get; set; }\r
+\r
+            public IDictionary<string, int> EnumValues;\r
+\r
+            #region Type overrides - the ones who make sense\r
+\r
+            public override string Name\r
+            {\r
+                get { return EnumName; }\r
+            }\r
+\r
+            public override Type BaseType\r
+            {\r
+                get { return typeof(Enum); }\r
+            }\r
+\r
+            public override string FullName\r
+            {\r
+                get { return Name; } // this is a dynamic type without any qualification (namespace or assembly)\r
+            }\r
+\r
+            protected override bool IsArrayImpl()\r
+            {\r
+                return false;\r
+            }\r
+\r
+            protected override bool IsByRefImpl()\r
+            {\r
+                return false;\r
+            }\r
+\r
+            protected override bool IsCOMObjectImpl()\r
+            {\r
+                return false;\r
+            }\r
+\r
+            protected override bool IsPointerImpl()\r
+            {\r
+                return false;\r
+            }\r
+\r
+            protected override bool IsPrimitiveImpl()\r
+            {\r
+                return true;\r
+            }\r
+\r
+            #endregion\r
+\r
+            #region Type overrides - the ones we don't care about\r
+            public override object[] GetCustomAttributes(Type attributeType, bool inherit)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override object[] GetCustomAttributes(bool inherit)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override bool IsDefined(Type attributeType, bool inherit)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override Assembly Assembly\r
+            {\r
+                get { throw new NotImplementedException(); }\r
+            }\r
+\r
+            public override string AssemblyQualifiedName\r
+            {\r
+                get { throw new NotImplementedException(); }\r
+            }\r
+\r
+            protected override TypeAttributes GetAttributeFlagsImpl()\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            protected override ConstructorInfo GetConstructorImpl(BindingFlags bindingAttr, Binder binder,\r
+                                                                  CallingConventions callConvention, Type[] types,\r
+                                                                  ParameterModifier[] modifiers)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override ConstructorInfo[] GetConstructors(BindingFlags bindingAttr)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override Type GetElementType()\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override EventInfo GetEvent(string name, BindingFlags bindingAttr)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override EventInfo[] GetEvents(BindingFlags bindingAttr)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override FieldInfo GetField(string name, BindingFlags bindingAttr)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override FieldInfo[] GetFields(BindingFlags bindingAttr)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override Type GetInterface(string name, bool ignoreCase)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override Type[] GetInterfaces()\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override MemberInfo[] GetMembers(BindingFlags bindingAttr)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            protected override MethodInfo GetMethodImpl(string name, BindingFlags bindingAttr, Binder binder,\r
+                                                        CallingConventions callConvention, Type[] types,\r
+                                                        ParameterModifier[] modifiers)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override MethodInfo[] GetMethods(BindingFlags bindingAttr)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override Type GetNestedType(string name, BindingFlags bindingAttr)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override Type[] GetNestedTypes(BindingFlags bindingAttr)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override PropertyInfo[] GetProperties(BindingFlags bindingAttr)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            protected override PropertyInfo GetPropertyImpl(string name, BindingFlags bindingAttr, Binder binder,\r
+                                                            Type returnType, Type[] types, ParameterModifier[] modifiers)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override Guid GUID\r
+            {\r
+                get { throw new NotImplementedException(); }\r
+            }\r
+\r
+            protected override bool HasElementTypeImpl()\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target,\r
+                                                object[] args, ParameterModifier[] modifiers, CultureInfo culture,\r
+                                                string[] namedParameters)\r
+            {\r
+                throw new NotImplementedException();\r
+            }\r
+\r
+            public override Module Module\r
+            {\r
+                get { throw new NotImplementedException(); }\r
+            }\r
+\r
+            public override string Namespace\r
+            {\r
+                get { throw new NotImplementedException(); }\r
+            }\r
+\r
+            public override Type UnderlyingSystemType\r
+            {\r
+                get { throw new NotImplementedException(); }\r
+            }\r
+            #endregion\r
+        }\r
+\r
+        protected static Regex DefaultEnumDefinitionEx = new Regex(@"\s*enum\s*\((?<values>.*)\s*\)\s*", RegexOptions.Compiled);\r
+        protected static Regex EnumValuesEx = new Regex(@"\'(?<value>\w*)\'\s*,?\s*", RegexOptions.Compiled);\r
+\r
+        /// <summary>\r
+        /// Maps a type to enum type, if possible.\r
+        /// </summary>\r
+        /// <param name="dataType">Type of the data.</param>\r
+        /// <returns></returns>\r
+        protected virtual EnumType MapEnumDbType(IDataType dataType)\r
+        {\r
+            var enumType = new EnumType();\r
+            // MySQL represents enums as follows:\r
+            // enum('value1','value2')\r
+            Match outerMatch = DefaultEnumDefinitionEx.Match(dataType.FullType);\r
+            if (outerMatch.Success)\r
+            {\r
+                string values = outerMatch.Groups["values"].Value;\r
+                var innerMatches = EnumValuesEx.Matches(values);\r
+                int currentValue = 1;\r
+                foreach (Match innerMatch in innerMatches)\r
+                {\r
+                    var value = innerMatch.Groups["value"].Value;\r
+                    enumType.EnumValues[value] = currentValue++;\r
+                }\r
+            }\r
+            return enumType;\r
+        }\r
+    }\r
+}\r
index 8a409986e38a9b573edc1b218c3beed86854d7c1..32a71934d5508e025952bd5d6661f52d855b5a2d 100644 (file)
@@ -165,6 +165,8 @@ namespace DbLinq.Vendor.Implementation
                 return GetLiteral((string)literal);\r
             if (literal is char)\r
                 return GetLiteral(literal.ToString());\r
+            if (literal is bool)\r
+                return GetLiteral((bool)literal);\r
             if (literal is DateTime)\r
                 return GetLiteral(literal.ToString());\r
             if (literal.GetType().IsArray)\r
@@ -172,6 +174,11 @@ namespace DbLinq.Vendor.Implementation
             return Convert.ToString(literal, CultureInfo.InvariantCulture);\r
         }\r
 \r
+        public virtual SqlStatement GetLiteral(bool literal)\r
+        {\r
+            return Convert.ToString(literal, CultureInfo.InvariantCulture);\r
+        }\r
+\r
         /// <summary>\r
         /// Converts a standard operator to an expression\r
         /// </summary>\r
@@ -182,94 +189,94 @@ namespace DbLinq.Vendor.Implementation
         {\r
             switch (operationType)\r
             {\r
-                case ExpressionType.Add:\r
-                    return GetLiteralAdd(p[0], p[1]);\r
-                case ExpressionType.AddChecked:\r
-                    return GetLiteralAddChecked(p[0], p[1]);\r
-                case ExpressionType.And:\r
-                    return GetLiteralAnd(p[0], p[1]);\r
-                case ExpressionType.AndAlso:\r
-                    return GetLiteralAndAlso(p[0], p[1]);\r
-                case ExpressionType.ArrayLength:\r
-                    return GetLiteralArrayLength(p[0], p[1]);\r
-                case ExpressionType.ArrayIndex:\r
-                    return GetLiteralArrayIndex(p[0], p[1]);\r
-                case ExpressionType.Call:\r
-                    return GetLiteralCall(p[0]);\r
-                case ExpressionType.Coalesce:\r
-                    return GetLiteralCoalesce(p[0], p[1]);\r
-                case ExpressionType.Conditional:\r
-                    return GetLiteralConditional(p[0], p[1], p[2]);\r
-                //case ExpressionType.Constant:\r
-                //break;\r
-                case ExpressionType.Divide:\r
-                    return GetLiteralDivide(p[0], p[1]);\r
-                case ExpressionType.Equal:\r
-                    return GetLiteralEqual(p[0], p[1]);\r
-                case ExpressionType.ExclusiveOr:\r
-                    return GetLiteralExclusiveOr(p[0], p[1]);\r
-                case ExpressionType.GreaterThan:\r
-                    return GetLiteralGreaterThan(p[0], p[1]);\r
-                case ExpressionType.GreaterThanOrEqual:\r
-                    return GetLiteralGreaterThanOrEqual(p[0], p[1]);\r
-                //case ExpressionType.Invoke:\r
-                //break;\r
-                //case ExpressionType.Lambda:\r
-                //break;\r
-                case ExpressionType.LeftShift:\r
-                    return GetLiteralLeftShift(p[0], p[1]);\r
-                case ExpressionType.LessThan:\r
-                    return GetLiteralLessThan(p[0], p[1]);\r
-                case ExpressionType.LessThanOrEqual:\r
-                    return GetLiteralLessThanOrEqual(p[0], p[1]);\r
-                //case ExpressionType.ListInit:\r
-                //break;\r
-                //case ExpressionType.MemberAccess:\r
-                //    break;\r
-                //case ExpressionType.MemberInit:\r
-                //    break;\r
-                case ExpressionType.Modulo:\r
-                    return GetLiteralModulo(p[0], p[1]);\r
-                case ExpressionType.Multiply:\r
-                    return GetLiteralMultiply(p[0], p[1]);\r
-                case ExpressionType.MultiplyChecked:\r
-                    return GetLiteralMultiplyChecked(p[0], p[1]);\r
-                case ExpressionType.Negate:\r
-                    return GetLiteralNegate(p[0]);\r
-                case ExpressionType.UnaryPlus:\r
-                    return GetLiteralUnaryPlus(p[0]);\r
-                case ExpressionType.NegateChecked:\r
-                    return GetLiteralNegateChecked(p[0]);\r
-                //case ExpressionType.New:\r
-                //    break;\r
-                //case ExpressionType.NewArrayInit:\r
-                //    break;\r
-                //case ExpressionType.NewArrayBounds:\r
-                //    break;\r
-                case ExpressionType.Not:\r
-                    return GetLiteralNot(p[0]);\r
-                case ExpressionType.NotEqual:\r
-                    return GetLiteralNotEqual(p[0], p[1]);\r
-                case ExpressionType.Or:\r
-                    return GetLiteralOr(p[0], p[1]);\r
-                case ExpressionType.OrElse:\r
-                    return GetLiteralOrElse(p[0], p[1]);\r
-                //case ExpressionType.Parameter:\r
-                //    break;\r
-                case ExpressionType.Power:\r
-                    return GetLiteralPower(p[0], p[1]);\r
-                //case ExpressionType.Quote:\r
-                //    break;\r
-                case ExpressionType.RightShift:\r
-                    return GetLiteralRightShift(p[0], p[1]);\r
-                case ExpressionType.Subtract:\r
-                    return GetLiteralSubtract(p[0], p[1]);\r
-                case ExpressionType.SubtractChecked:\r
-                    return GetLiteralSubtractChecked(p[0], p[1]);\r
-                //case ExpressionType.TypeAs:\r
-                //    break;\r
-                //case ExpressionType.TypeIs:\r
-                //    break;\r
+            case ExpressionType.Add:\r
+                return GetLiteralAdd(p[0], p[1]);\r
+            case ExpressionType.AddChecked:\r
+                return GetLiteralAddChecked(p[0], p[1]);\r
+            case ExpressionType.And:\r
+                return GetLiteralAnd(p[0], p[1]);\r
+            case ExpressionType.AndAlso:\r
+                return GetLiteralAndAlso(p[0], p[1]);\r
+            case ExpressionType.ArrayLength:\r
+                return GetLiteralArrayLength(p[0], p[1]);\r
+            case ExpressionType.ArrayIndex:\r
+                return GetLiteralArrayIndex(p[0], p[1]);\r
+            case ExpressionType.Call:\r
+                return GetLiteralCall(p[0]);\r
+            case ExpressionType.Coalesce:\r
+                return GetLiteralCoalesce(p[0], p[1]);\r
+            case ExpressionType.Conditional:\r
+                return GetLiteralConditional(p[0], p[1], p[2]);\r
+            //case ExpressionType.Constant:\r
+            //break;\r
+            case ExpressionType.Divide:\r
+                return GetLiteralDivide(p[0], p[1]);\r
+            case ExpressionType.Equal:\r
+                return GetLiteralEqual(p[0], p[1]);\r
+            case ExpressionType.ExclusiveOr:\r
+                return GetLiteralExclusiveOr(p[0], p[1]);\r
+            case ExpressionType.GreaterThan:\r
+                return GetLiteralGreaterThan(p[0], p[1]);\r
+            case ExpressionType.GreaterThanOrEqual:\r
+                return GetLiteralGreaterThanOrEqual(p[0], p[1]);\r
+            //case ExpressionType.Invoke:\r
+            //break;\r
+            //case ExpressionType.Lambda:\r
+            //break;\r
+            case ExpressionType.LeftShift:\r
+                return GetLiteralLeftShift(p[0], p[1]);\r
+            case ExpressionType.LessThan:\r
+                return GetLiteralLessThan(p[0], p[1]);\r
+            case ExpressionType.LessThanOrEqual:\r
+                return GetLiteralLessThanOrEqual(p[0], p[1]);\r
+            //case ExpressionType.ListInit:\r
+            //break;\r
+            //case ExpressionType.MemberAccess:\r
+            //    break;\r
+            //case ExpressionType.MemberInit:\r
+            //    break;\r
+            case ExpressionType.Modulo:\r
+                return GetLiteralModulo(p[0], p[1]);\r
+            case ExpressionType.Multiply:\r
+                return GetLiteralMultiply(p[0], p[1]);\r
+            case ExpressionType.MultiplyChecked:\r
+                return GetLiteralMultiplyChecked(p[0], p[1]);\r
+            case ExpressionType.Negate:\r
+                return GetLiteralNegate(p[0]);\r
+            case ExpressionType.UnaryPlus:\r
+                return GetLiteralUnaryPlus(p[0]);\r
+            case ExpressionType.NegateChecked:\r
+                return GetLiteralNegateChecked(p[0]);\r
+            //case ExpressionType.New:\r
+            //    break;\r
+            //case ExpressionType.NewArrayInit:\r
+            //    break;\r
+            //case ExpressionType.NewArrayBounds:\r
+            //    break;\r
+            case ExpressionType.Not:\r
+                return GetLiteralNot(p[0]);\r
+            case ExpressionType.NotEqual:\r
+                return GetLiteralNotEqual(p[0], p[1]);\r
+            case ExpressionType.Or:\r
+                return GetLiteralOr(p[0], p[1]);\r
+            case ExpressionType.OrElse:\r
+                return GetLiteralOrElse(p[0], p[1]);\r
+            //case ExpressionType.Parameter:\r
+            //    break;\r
+            case ExpressionType.Power:\r
+                return GetLiteralPower(p[0], p[1]);\r
+            //case ExpressionType.Quote:\r
+            //    break;\r
+            case ExpressionType.RightShift:\r
+                return GetLiteralRightShift(p[0], p[1]);\r
+            case ExpressionType.Subtract:\r
+                return GetLiteralSubtract(p[0], p[1]);\r
+            case ExpressionType.SubtractChecked:\r
+                return GetLiteralSubtractChecked(p[0], p[1]);\r
+            //case ExpressionType.TypeAs:\r
+            //    break;\r
+            //case ExpressionType.TypeIs:\r
+            //    break;\r
             }\r
             throw new ArgumentException(operationType.ToString());\r
         }\r
@@ -285,88 +292,88 @@ namespace DbLinq.Vendor.Implementation
         {\r
             switch (operationType) // SETuse\r
             {\r
-                case SpecialExpressionType.IsNull:\r
-                    return GetLiteralIsNull(p[0]);\r
-                case SpecialExpressionType.IsNotNull:\r
-                    return GetLiteralIsNotNull(p[0]);\r
-                case SpecialExpressionType.Concat:\r
-                    return GetLiteralStringConcat(p[0], p[1]);\r
-                case SpecialExpressionType.Count:\r
-                    return GetLiteralCount(p[0]);\r
-                case SpecialExpressionType.Like:\r
-                    return GetLiteralLike(p[0], p[1]);\r
-                case SpecialExpressionType.Min:\r
-                    return GetLiteralMin(p[0]);\r
-                case SpecialExpressionType.Max:\r
-                    return GetLiteralMax(p[0]);\r
-                case SpecialExpressionType.Sum:\r
-                    return GetLiteralSum(p[0]);\r
-                case SpecialExpressionType.Average:\r
-                    return GetLiteralAverage(p[0]);\r
-                case SpecialExpressionType.StringLength:\r
-                    return GetLiteralStringLength(p[0]);\r
-                case SpecialExpressionType.ToUpper:\r
-                    return GetLiteralStringToUpper(p[0]);\r
-                case SpecialExpressionType.ToLower:\r
-                    return GetLiteralStringToLower(p[0]);\r
-                case SpecialExpressionType.In:\r
-                    return GetLiteralIn(p[0], p[1]);\r
-                case SpecialExpressionType.Substring:\r
-                    if (p.Count > 2)\r
-                        return GetLiteralSubString(p[0], p[1], p[2]);\r
-                    return GetLiteralSubString(p[0], p[1]);\r
-                case SpecialExpressionType.Trim:\r
-                case SpecialExpressionType.LTrim:\r
-                case SpecialExpressionType.RTrim:\r
-                    return GetLiteralTrim(p[0]);\r
-                case SpecialExpressionType.StringInsert:\r
-                    return GetLiteralStringInsert(p[0], p[1], p[2]);\r
-                case SpecialExpressionType.Replace:\r
-                    return GetLiteralStringReplace(p[0], p[1], p[2]);\r
-                case SpecialExpressionType.Remove:\r
-                    if (p.Count > 2)\r
-                        return GetLiteralStringRemove(p[0], p[1], p[2]);\r
-                    return GetLiteralStringRemove(p[0], p[1]);\r
-                case SpecialExpressionType.IndexOf:\r
-                    if (p.Count == 2)\r
-                        return GetLiteralStringIndexOf(p[0], p[1]);\r
-                    else if (p.Count == 3)\r
-                        return GetLiteralStringIndexOf(p[0], p[1], p[2]);\r
-                    else if (p.Count == 4)\r
-                        return GetLiteralStringIndexOf(p[0], p[1], p[2], p[3]);\r
-                    break;\r
-                case SpecialExpressionType.Year:\r
-                case SpecialExpressionType.Month:\r
-                case SpecialExpressionType.Day:\r
-                case SpecialExpressionType.Hour:\r
-                case SpecialExpressionType.Minute:\r
-                case SpecialExpressionType.Second:\r
-                case SpecialExpressionType.Millisecond:\r
-                    return GetLiteralDateTimePart(p[0], operationType);\r
-                case SpecialExpressionType.DateDiffInMilliseconds:\r
-                    return GetLiteralDateDiff(p[0], p[1]);\r
-                case SpecialExpressionType.Abs:\r
-                    return GetLiteralMathAbs(p[0]);\r
-                case SpecialExpressionType.Exp:\r
-                    return GetLiteralMathExp(p[0]);\r
-                case SpecialExpressionType.Floor:\r
-                    return GetLiteralMathFloor(p[0]);\r
-                case SpecialExpressionType.Ln:\r
-                    return GetLiteralMathLn(p[0]);\r
-\r
-                case SpecialExpressionType.Log:\r
-                    if (p.Count == 1)\r
-                        return GetLiteralMathLog(p[0]);\r
-                    else\r
-                        return GetLiteralMathLog(p[0], p[1]);\r
-                case SpecialExpressionType.Pow:\r
-                    return GetLiteralMathPow(p[0], p[1]);\r
-                case SpecialExpressionType.Round:\r
-                    return GetLiteralMathRound(p[0]);\r
-                case SpecialExpressionType.Sign:\r
-                    return GetLiteralMathSign(p[0]);\r
-                case SpecialExpressionType.Sqrt:\r
-                    return GetLiteralMathSqrt(p[0]);\r
+            case SpecialExpressionType.IsNull:\r
+                return GetLiteralIsNull(p[0]);\r
+            case SpecialExpressionType.IsNotNull:\r
+                return GetLiteralIsNotNull(p[0]);\r
+            case SpecialExpressionType.Concat:\r
+                return GetLiteralStringConcat(p[0], p[1]);\r
+            case SpecialExpressionType.Count:\r
+                return GetLiteralCount(p[0]);\r
+            case SpecialExpressionType.Like:\r
+                return GetLiteralLike(p[0], p[1]);\r
+            case SpecialExpressionType.Min:\r
+                return GetLiteralMin(p[0]);\r
+            case SpecialExpressionType.Max:\r
+                return GetLiteralMax(p[0]);\r
+            case SpecialExpressionType.Sum:\r
+                return GetLiteralSum(p[0]);\r
+            case SpecialExpressionType.Average:\r
+                return GetLiteralAverage(p[0]);\r
+            case SpecialExpressionType.StringLength:\r
+                return GetLiteralStringLength(p[0]);\r
+            case SpecialExpressionType.ToUpper:\r
+                return GetLiteralStringToUpper(p[0]);\r
+            case SpecialExpressionType.ToLower:\r
+                return GetLiteralStringToLower(p[0]);\r
+            case SpecialExpressionType.In:\r
+                return GetLiteralIn(p[0], p[1]);\r
+            case SpecialExpressionType.Substring:\r
+                if (p.Count > 2)\r
+                    return GetLiteralSubString(p[0], p[1], p[2]);\r
+                return GetLiteralSubString(p[0], p[1]);\r
+            case SpecialExpressionType.Trim:\r
+            case SpecialExpressionType.LTrim:\r
+            case SpecialExpressionType.RTrim:\r
+                return GetLiteralTrim(p[0]);\r
+            case SpecialExpressionType.StringInsert:\r
+                return GetLiteralStringInsert(p[0], p[1], p[2]);\r
+            case SpecialExpressionType.Replace:\r
+                return GetLiteralStringReplace(p[0], p[1], p[2]);\r
+            case SpecialExpressionType.Remove:\r
+                if (p.Count > 2)\r
+                    return GetLiteralStringRemove(p[0], p[1], p[2]);\r
+                return GetLiteralStringRemove(p[0], p[1]);\r
+            case SpecialExpressionType.IndexOf:\r
+                if (p.Count == 2)\r
+                    return GetLiteralStringIndexOf(p[0], p[1]);\r
+                else if (p.Count == 3)\r
+                    return GetLiteralStringIndexOf(p[0], p[1], p[2]);\r
+                else if (p.Count == 4)\r
+                    return GetLiteralStringIndexOf(p[0], p[1], p[2], p[3]);\r
+                break;\r
+            case SpecialExpressionType.Year:\r
+            case SpecialExpressionType.Month:\r
+            case SpecialExpressionType.Day:\r
+            case SpecialExpressionType.Hour:\r
+            case SpecialExpressionType.Minute:\r
+            case SpecialExpressionType.Second:\r
+            case SpecialExpressionType.Millisecond:\r
+                return GetLiteralDateTimePart(p[0], operationType);\r
+            case SpecialExpressionType.DateDiffInMilliseconds:\r
+                return GetLiteralDateDiff(p[0], p[1]);\r
+            case SpecialExpressionType.Abs:\r
+                return GetLiteralMathAbs(p[0]);\r
+            case SpecialExpressionType.Exp:\r
+                return GetLiteralMathExp(p[0]);\r
+            case SpecialExpressionType.Floor:\r
+                return GetLiteralMathFloor(p[0]);\r
+            case SpecialExpressionType.Ln:\r
+                return GetLiteralMathLn(p[0]);\r
+\r
+            case SpecialExpressionType.Log:\r
+                if (p.Count == 1)\r
+                    return GetLiteralMathLog(p[0]);\r
+                else\r
+                    return GetLiteralMathLog(p[0], p[1]);\r
+            case SpecialExpressionType.Pow:\r
+                return GetLiteralMathPow(p[0], p[1]);\r
+            case SpecialExpressionType.Round:\r
+                return GetLiteralMathRound(p[0]);\r
+            case SpecialExpressionType.Sign:\r
+                return GetLiteralMathSign(p[0]);\r
+            case SpecialExpressionType.Sqrt:\r
+                return GetLiteralMathSqrt(p[0]);\r
 \r
             }\r
             throw new ArgumentException(operationType.ToString());\r
@@ -626,16 +633,16 @@ namespace DbLinq.Vendor.Implementation
         {\r
             switch (selectOperator)\r
             {\r
-                case SelectOperatorType.Union:\r
-                    return GetLiteralUnion(selectA, selectB);\r
-                case SelectOperatorType.UnionAll:\r
-                    return GetLiteralUnionAll(selectA, selectB);\r
-                case SelectOperatorType.Intersection:\r
-                    return GetLiteralIntersect(selectA, selectB);\r
-                case SelectOperatorType.Exception:\r
-                    return GetLiteralExcept(selectA, selectB);\r
-                default:\r
-                    throw new ArgumentOutOfRangeException(selectOperator.ToString());\r
+            case SelectOperatorType.Union:\r
+                return GetLiteralUnion(selectA, selectB);\r
+            case SelectOperatorType.UnionAll:\r
+                return GetLiteralUnionAll(selectA, selectB);\r
+            case SelectOperatorType.Intersection:\r
+                return GetLiteralIntersect(selectA, selectB);\r
+            case SelectOperatorType.Exception:\r
+                return GetLiteralExcept(selectA, selectB);\r
+            default:\r
+                throw new ArgumentOutOfRangeException(selectOperator.ToString());\r
             }\r
         }\r
 \r
@@ -1583,33 +1590,39 @@ namespace DbLinq.Vendor.Implementation
             var nameL = name.ToLower();\r
             switch (nameL)\r
             {\r
-                case "user":\r
-                case "bit":\r
-                case "int":\r
-                case "smallint":\r
-                case "tinyint":\r
-                case "mediumint":\r
-\r
-                case "float":\r
-                case "double":\r
-                case "real":\r
-                case "decimal":\r
-                case "numeric":\r
-\r
-                case "blob":\r
-                case "text":\r
-                case "char":\r
-                case "varchar":\r
-\r
-                case "date":\r
-                case "time":\r
-                case "datetime":\r
-                case "timestamp":\r
-                case "year":\r
+            case "user":\r
+            case "bit":\r
+            case "int":\r
+            case "smallint":\r
+            case "tinyint":\r
+            case "mediumint":\r
+\r
+            case "float":\r
+            case "double":\r
+            case "real":\r
+            case "decimal":\r
+            case "numeric":\r
+\r
+            case "blob":\r
+            case "text":\r
+            case "char":\r
+            case "varchar":\r
+\r
+            case "date":\r
+            case "time":\r
+            case "datetime":\r
+            case "timestamp":\r
+            case "year":\r
+\r
+            case "select":\r
+            case "from":\r
+            case "where":\r
+            case "order":\r
+            case "by":\r
 \r
-                    return false;\r
-                default:\r
-                    return !name.Contains(' ');\r
+                return false;\r
+            default:\r
+                return !name.Contains(' ');\r
             }\r
         }\r
 \r
index ea3093b53de6d6827a591b8c18ff852aae23a9c3..83acecd4b59b6d59bb76558bdf754c9e3a9c8671 100644 (file)
@@ -161,73 +161,27 @@ namespace DbLinq.Vendor.Implementation
             return string.Join(";", connectionStringParts.ToArray());\r
         }\r
 \r
-        /// <summary>\r
-        /// used during DataContext ctor -\r
-        /// - to ask specific DLL and class to load an IDbConnection object from\r
-        /// </summary>\r
-        /// <returns></returns>\r
-        protected abstract TypeToLoadData GetProviderTypeName();\r
-\r
         /// <summary>\r
         /// called from DataContext ctor, which needs to create an IDbConnection, given an IVendor\r
         /// </summary>\r
         public IDbConnection CreateDbConnection(string connectionString)\r
         {\r
-            TypeToLoadData typeToLoad = GetProviderTypeName();\r
-            string assemblyToLoad = typeToLoad.assemblyName; //e.g. "System.Data.SQLite.DLL",\r
-            Assembly assy;\r
-            try\r
-            {\r
-                //TODO: check if DLL is already loaded?\r
-                assy = Assembly.LoadFrom(assemblyToLoad);\r
-            }\r
-            catch (Exception ex)\r
-            {\r
-                //TODO: add proper logging here\r
-                Console.WriteLine("DataContext ctor: Assembly load failed for " + assemblyToLoad + ": " + ex);\r
-                throw ex;\r
-            }\r
-            Type[] STRING_PARAM = new Type[] { typeof(string) };\r
-\r
-            //find IDbProvider class in this assembly:\r
-            var ctors = (from mod in assy.GetModules()\r
-                         from cls in mod.GetTypes()\r
-                         where cls.GetInterfaces().Contains(typeof(IDbConnection))\r
-                         let ctorInfo = cls.GetConstructor(STRING_PARAM)\r
-                         where ctorInfo != null\r
-                         select ctorInfo).ToList();\r
-            if (ctors.Count == 0)\r
-            {\r
-                string msg = "Found no IVendor class in assembly " + assemblyToLoad + " having a string ctor";\r
-                throw new ArgumentException(msg);\r
-            }\r
-            else if (ctors.Count > 1)\r
-            {\r
-                string msg = "Found more than one IVendor class in assembly " + assemblyToLoad + " having a string ctor";\r
-                throw new ArgumentException(msg);\r
-            }\r
-            ConstructorInfo ctorInfo2 = ctors[0];\r
-\r
-            object iDbConnObject;\r
-            try\r
-            {\r
-                iDbConnObject = ctorInfo2.Invoke(new object[] { connectionString });\r
-            }\r
-            catch (Exception ex)\r
-            {\r
-                //TODO: add proper logging here\r
-                Console.WriteLine("DataContext/Vendor: Failed to invoke IDbConnection ctor " + ctorInfo2.Name + ": " + ex);\r
-                throw ex;\r
-            }\r
-            var connection = (IDbConnection)iDbConnObject;\r
-            return connection;\r
-        }\r
-\r
-        // TODO: update, this is obsolete\r
-        public class TypeToLoadData\r
-        {\r
-            public string assemblyName;\r
-            public string className;\r
+            var reConnectionType = new System.Text.RegularExpressions.Regex(@"DbLinqConnectionType=([^;]+)");\r
+            if (!reConnectionType.IsMatch(connectionString))\r
+                throw new ArgumentException("No DbLinqConnectionType parameter found.  " +\r
+                    "Please specify the assembly qualified type name to use for the Connection Type.",\r
+                    "connectionString");\r
+\r
+            var    match        = reConnectionType.Match(connectionString);\r
+            string connTypeVal  = match.Groups[1].Value;\r
+            var    connType     = Type.GetType(connTypeVal);\r
+            if (connType == null)\r
+                throw new ArgumentException(string.Format(\r
+                        "Could not load the specified DbLinqConnectionType `{0}'.",\r
+                        connTypeVal),\r
+                    "connectionString");\r
+            connectionString = reConnectionType.Replace(connectionString, "");\r
+            return (IDbConnection)Activator.CreateInstance(connType, connectionString);\r
         }\r
     }\r
 }\r
index ceb5e1c977da9640729545e91e2ff4a32b790599..3457390b6b4e8e398330c4b50a543098bf373ce0 100644 (file)
@@ -1,65 +1,65 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<TestLists xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2006">
-  <TestList name="ExpressionEqualityComparer" id="2b647753-badc-439b-8b2b-2d4f17633818" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">
-    <TestLinks>
-      <TestLink id="a720a5b0-e425-b1b8-77c2-08b4743c163c" name="Equality4Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="73dfcdd1-3e34-65c6-4739-ad0ccdaf32a4" name="Inequality1Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="822984b6-3c12-c768-2502-9487bd21d664" name="Inequality9Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="7849fc5d-4dd1-e9a7-6ed6-95a19027cf9b" name="Inequality5Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="aa5d6e4e-606f-8866-1b00-c51c8aed9087" name="Equality1Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="cd750f5d-9f73-a93a-bf6d-dcd8638cc716" name="Inequality4Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="b4ffb924-11d0-357f-2142-7543e27ae481" name="Equality2Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="f49b14c0-84dd-d37f-ff2a-189cdbeba0de" name="Equality3Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="505dde5b-4b43-668e-511c-ac698e26fb56" name="Equality9Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="0b3935c2-79c9-5eee-500f-e32a93291a89" name="Inequality6Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="f1766afc-7c1a-701c-a724-dff9e3577220" name="Inequality7Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-    </TestLinks>
-  </TestList>
-  <TestList name="CSV" id="5f4e3dcf-0fc2-4adf-b040-9c43abd29825" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">
-    <TestLinks>
-      <TestLink id="8edfbff0-9217-34da-cdaf-99e6a87360ce" name="WriteArrayTest" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="2d6d8fc8-6aea-b1bf-4c6b-6cae6f82c10c" name="ArrayTest" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-    </TestLinks>
-  </TestList>
-  <TestList name="Schema" id="830fbbb5-6aaf-4ec9-bc36-efa2bc59567b" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">
-    <TestLinks>
-      <TestLink id="1728b8be-195f-aa0c-e8d8-702d9ad1d982" name="UnpackDbType3Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="e8f459b4-aab9-55d2-048c-9eb5f0efd342" name="UnpackDbType4Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="75e74d64-a3a6-d020-91f1-b7feb4ffc761" name="UnpackDbType1Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="c85281a2-126f-f6f6-0e5b-ed8839b957c7" name="ToEnumTest2" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="32256574-4f17-0ea9-ce56-d7d293290ad7" name="UnpackDbType2Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="6e28524c-ecac-ad63-4e5f-851a4434d059" name="ToEnumTest1" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="c7522bbc-978c-ff87-a01f-08984f1f2a5a" name="UnpackDbType5Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-    </TestLinks>
-  </TestList>
-  <TestList name="Lists of Tests" id="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">
-    <RunConfiguration id="4bf8ab57-0a3e-42e7-8cf7-3cb20d6d9ec5" name="Local Test Run" storage="localtestrun.testrunconfig" type="Microsoft.VisualStudio.TestTools.Common.TestRunConfiguration, Microsoft.VisualStudio.QualityTools.Common,   PublicKeyToken=b03f5f7f11d50a3a" />
-  </TestList>
-  <TestList name="Words" id="f8d65c83-5ce4-41c6-bc6f-1d69d7864af4" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">
-    <TestLinks>
-      <TestLink id="6725f22f-ec10-69d7-54a8-9c50c606ee5b" name="GetWordsTest_MTER" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="a5bc14f4-48a5-a893-4380-2892c02cbfa2" name="PluralizeTest_Oeuf" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="12669cd0-dfb6-75ab-f5bd-51b9a3b01968" name="GetWordsTest_HireDate" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="e1ae0ada-9524-3d3e-b80e-852e1f25f2a0" name="GetWordsTest_CustomerId" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="78acae99-7693-d338-ab01-ff8a20006492" name="InvalidCharactersLanguageTest" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="ab308983-5e9f-518e-b1a6-2d0593f6fdd5" name="GetWordsTest_UnitsInStock" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="6e6c1134-640f-dccf-48b3-3b5c74fe3922" name="GetWordsTest_MyTableName" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="b8a2445e-4a62-22e1-5938-db9122337ff4" name="GetWordsTest_MyTableName2" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="bf13d4b8-d3d9-82c9-93ce-2f647ed67d96" name="PluralizeTest_Cou" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="353d788c-2a7a-2852-2fa1-ea495eabdcf4" name="GetWordsTest_QuantityPerUnit" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="a1a16112-1dcc-e5a0-e742-ccf55018c6cf" name="GetNoteTest_PerUnit" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="2cc22302-cd39-930f-791c-fa6e3b766ee0" name="GetWordsTest_CatG" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="2cf6ad6a-85d1-06c2-7e4d-7ebfc4b9a68a" name="PluralizeTest_Bijou" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="34b7d48e-4996-241e-db4d-8ed9ef738baf" name="InvalidCharactersLanguage2Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="429d6969-deff-9c12-cbf9-ecaf63830dc6" name="InvalidCharactersCaseTest" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="aff15bbe-7c82-54d4-c229-3a5bb1bf69e5" name="GetWordsTest_FkProdCatG" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="892bf6b0-bc14-0a43-f508-643f944bbda8" name="GetNoteTest_ToothPaste" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="517a1fd1-fbf0-5c1d-4d72-31e7b72ba2ab" name="GetWordsTest_HelloWorld" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="472709a5-ed17-83aa-8871-563821289395" name="GetWordsTest_SalutMonde" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="bd3eb732-eb1b-d97c-73b3-b7b5713a6c96" name="GetNoteTest_Hello" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="a5cb39dd-3e40-9de0-dfde-10007e01aac8" name="GetWordsTest_AllIntType" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="31eb12ff-2083-66e9-8b79-54f37d2476c3" name="GetWordsTest_SupplierId" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="cd592884-08a9-5f8e-46ee-aca8f7e83a35" name="PluralizeTest_Gas" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />
-    </TestLinks>
-  </TestList>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<TestLists xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2006">\r
+  <TestList name="ExpressionEqualityComparer" id="2b647753-badc-439b-8b2b-2d4f17633818" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">\r
+    <TestLinks>\r
+      <TestLink id="a720a5b0-e425-b1b8-77c2-08b4743c163c" name="Equality4Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="73dfcdd1-3e34-65c6-4739-ad0ccdaf32a4" name="Inequality1Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="822984b6-3c12-c768-2502-9487bd21d664" name="Inequality9Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="7849fc5d-4dd1-e9a7-6ed6-95a19027cf9b" name="Inequality5Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="aa5d6e4e-606f-8866-1b00-c51c8aed9087" name="Equality1Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="cd750f5d-9f73-a93a-bf6d-dcd8638cc716" name="Inequality4Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="b4ffb924-11d0-357f-2142-7543e27ae481" name="Equality2Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="f49b14c0-84dd-d37f-ff2a-189cdbeba0de" name="Equality3Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="505dde5b-4b43-668e-511c-ac698e26fb56" name="Equality9Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="0b3935c2-79c9-5eee-500f-e32a93291a89" name="Inequality6Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="f1766afc-7c1a-701c-a724-dff9e3577220" name="Inequality7Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+    </TestLinks>\r
+  </TestList>\r
+  <TestList name="CSV" id="5f4e3dcf-0fc2-4adf-b040-9c43abd29825" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">\r
+    <TestLinks>\r
+      <TestLink id="8edfbff0-9217-34da-cdaf-99e6a87360ce" name="WriteArrayTest" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="2d6d8fc8-6aea-b1bf-4c6b-6cae6f82c10c" name="ArrayTest" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+    </TestLinks>\r
+  </TestList>\r
+  <TestList name="Schema" id="830fbbb5-6aaf-4ec9-bc36-efa2bc59567b" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">\r
+    <TestLinks>\r
+      <TestLink id="1728b8be-195f-aa0c-e8d8-702d9ad1d982" name="UnpackDbType3Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="e8f459b4-aab9-55d2-048c-9eb5f0efd342" name="UnpackDbType4Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="75e74d64-a3a6-d020-91f1-b7feb4ffc761" name="UnpackDbType1Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="c85281a2-126f-f6f6-0e5b-ed8839b957c7" name="ToEnumTest2" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="32256574-4f17-0ea9-ce56-d7d293290ad7" name="UnpackDbType2Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="6e28524c-ecac-ad63-4e5f-851a4434d059" name="ToEnumTest1" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="c7522bbc-978c-ff87-a01f-08984f1f2a5a" name="UnpackDbType5Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+    </TestLinks>\r
+  </TestList>\r
+  <TestList name="Lists of Tests" id="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">\r
+    <RunConfiguration id="4bf8ab57-0a3e-42e7-8cf7-3cb20d6d9ec5" name="Local Test Run" storage="localtestrun.testrunconfig" type="Microsoft.VisualStudio.TestTools.Common.TestRunConfiguration, Microsoft.VisualStudio.QualityTools.Common,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+  </TestList>\r
+  <TestList name="Words" id="f8d65c83-5ce4-41c6-bc6f-1d69d7864af4" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">\r
+    <TestLinks>\r
+      <TestLink id="6725f22f-ec10-69d7-54a8-9c50c606ee5b" name="GetWordsTest_MTER" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="a5bc14f4-48a5-a893-4380-2892c02cbfa2" name="PluralizeTest_Oeuf" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="12669cd0-dfb6-75ab-f5bd-51b9a3b01968" name="GetWordsTest_HireDate" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="e1ae0ada-9524-3d3e-b80e-852e1f25f2a0" name="GetWordsTest_CustomerId" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="78acae99-7693-d338-ab01-ff8a20006492" name="InvalidCharactersLanguageTest" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="ab308983-5e9f-518e-b1a6-2d0593f6fdd5" name="GetWordsTest_UnitsInStock" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="6e6c1134-640f-dccf-48b3-3b5c74fe3922" name="GetWordsTest_MyTableName" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="b8a2445e-4a62-22e1-5938-db9122337ff4" name="GetWordsTest_MyTableName2" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="bf13d4b8-d3d9-82c9-93ce-2f647ed67d96" name="PluralizeTest_Cou" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="353d788c-2a7a-2852-2fa1-ea495eabdcf4" name="GetWordsTest_QuantityPerUnit" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="a1a16112-1dcc-e5a0-e742-ccf55018c6cf" name="GetNoteTest_PerUnit" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="2cc22302-cd39-930f-791c-fa6e3b766ee0" name="GetWordsTest_CatG" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="2cf6ad6a-85d1-06c2-7e4d-7ebfc4b9a68a" name="PluralizeTest_Bijou" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="34b7d48e-4996-241e-db4d-8ed9ef738baf" name="InvalidCharactersLanguage2Test" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="429d6969-deff-9c12-cbf9-ecaf63830dc6" name="InvalidCharactersCaseTest" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="aff15bbe-7c82-54d4-c229-3a5bb1bf69e5" name="GetWordsTest_FkProdCatG" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="892bf6b0-bc14-0a43-f508-643f944bbda8" name="GetNoteTest_ToothPaste" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="517a1fd1-fbf0-5c1d-4d72-31e7b72ba2ab" name="GetWordsTest_HelloWorld" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="472709a5-ed17-83aa-8871-563821289395" name="GetWordsTest_SalutMonde" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="bd3eb732-eb1b-d97c-73b3-b7b5713a6c96" name="GetNoteTest_Hello" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="a5cb39dd-3e40-9de0-dfde-10007e01aac8" name="GetWordsTest_AllIntType" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="31eb12ff-2083-66e9-8b79-54f37d2476c3" name="GetWordsTest_SupplierId" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+      <TestLink id="cd592884-08a9-5f8e-46ee-aca8f7e83a35" name="PluralizeTest_Gas" storage="..\tests\dblinqtest\bin\debug\dblinqtest.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel,   PublicKeyToken=b03f5f7f11d50a3a" />\r
+    </TestLinks>\r
+  </TestList>\r
 </TestLists>
\ No newline at end of file
index eb9bd4e5691900298b5218ba30ec68d8afbc4579..79bdbaa7b40daed2f4387dfd2971b097dde9efc4 100644 (file)
@@ -1,12 +1,13 @@
+\r
 Microsoft Visual Studio Solution File, Format Version 10.00\r
 # Visual C# Express 2008\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Mysql.Example", "..\examples\DbLinq.Mysql.Example\DbLinq.Mysql.Example.csproj", "{B8E7590F-1EA8-49AE-9808-A36C8A67E322}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.MySql.Example", "..\examples\DbLinq.MySql.Example\DbLinq.MySql.Example.csproj", "{B8E7590F-1EA8-49AE-9808-A36C8A67E322}"\r
 EndProject\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq", "DbLinq\DbLinq.csproj", "{7950197D-4122-49CB-9FD7-45E666BAFEC2}"\r
 EndProject\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.MySql", "DbLinq.MySql\DbLinq.MySql.csproj", "{FA8D1068-3341-4956-BF94-54C6A816BD9E}"\r
 EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_NUnit_Mysql", "..\tests\Test_NUnit\Test_NUnit_Mysql.csproj", "{858BAFF7-542F-4DBB-9C9B-57FCDE4DB7CE}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.MySql_test", "DbLinq.MySql\Test\DbLinq.MySql_test.csproj", "{858BAFF7-542F-4DBB-9C9B-57FCDE4DB7CE}"\r
 EndProject\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisualMetal", "VisualMetal\VisualMetal.csproj", "{05260362-DD1C-4DF4-890B-163D0A6D94B9}"\r
 EndProject\r
@@ -14,9 +15,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbMetal", "DbMetal\DbMetal.
 EndProject\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.PostgreSql", "DbLinq.PostgreSql\DbLinq.PostgreSql.csproj", "{32824F7E-9260-413C-B174-F3E315936FA7}"\r
 EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_NUnit_Pgsql", "..\tests\Test_NUnit\Test_NUnit_Pgsql.csproj", "{858BAFF7-542F-4DBB-940B-57333E4DB7CE}"\r
-EndProject\r
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Localization", "DbLinq.Localization\DbLinq.Localization.csproj", "{E636DAE5-1245-4ED1-A709-057935D20E24}"\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.PostgreSql_test", "DbLinq.PostgreSql\Test\DbLinq.PostgreSql_test.csproj", "{858BAFF7-542F-4DBB-940B-57333E4DB7CE}"\r
 EndProject\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Ingres", "DbLinq.Ingres\DbLinq.Ingres.csproj", "{90D57CD9-D704-409E-88A1-0F22AC79065A}"\r
 EndProject\r
@@ -26,6 +25,34 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Sqlite", "DbLinq.Sql
 EndProject\r
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Firebird", "DbLinq.Firebird\DbLinq.Firebird.csproj", "{E1AB58E4-357E-4031-90F3-6AABA9623047}"\r
 EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq_test", "DbLinq\Test\DbLinq_test.csproj", "{408D1FEB-71F4-4666-ADAD-194616D99B94}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.SqlServer", "DbLinq.SqlServer\DbLinq.SqlServer.csproj", "{EA47FE75-0E41-4ABF-B355-9667E78072E9}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.SqlServer_test", "DbLinq.SqlServer\Test\DbLinq.SqlServer_test.csproj", "{A348FBCE-2246-48FF-9862-35553B4B284C}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.SqlServer_test_ndb", "DbLinq.SqlServer\Test\DbLinq.SqlServer_test_ndb.csproj", "{6661D6CB-8AE4-4CEF-A81E-8A4AFB6A1CEE}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbMetal_test", "DbMetal\Test\DbMetal_test.csproj", "{4A829353-5A69-4EFD-8CD7-92C9D5DEB102}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Sqlite_test", "DbLinq.Sqlite\Test\DbLinq.Sqlite_test.csproj", "{3B13F240-D5E3-4BD4-BA4B-8CBDEE18207A}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.SqlServer_test_strict", "DbLinq.SqlServer\Test\DbLinq.SqlServer_test_strict.csproj", "{D63B7158-6F23-4B35-9C39-871D37C9BAA6}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Firebird_test", "DbLinq.Firebird\Test\DbLinq.Firebird_test.csproj", "{6BC45425-283A-4D51-881A-D1E14A699D57}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Ingres_test", "DbLinq.Ingres\Test\DbLinq.Ingres_test.csproj", "{858BAFF7-542F-4DBB-9C9B-57FCDE0DB7CE}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Oracle_test", "DbLinq.Oracle\Test\DbLinq.Oracle_test.csproj", "{858BAFF7-533F-4DBB-9C9B-57FCDE4DB7CE}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Oracle_test_odp", "DbLinq.Oracle\Test\DbLinq.Oracle_test_odp.csproj", "{858BAFE8-533F-4DBB-9C9B-57FCDE4DB7CE}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Sqlite_test_mono", "DbLinq.Sqlite\Test\DbLinq.Sqlite_test_mono.csproj", "{68267FB0-0771-4507-942F-395A1AE556FD}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq.Sqlite_test_mono_strict", "DbLinq.Sqlite\Test\DbLinq.Sqlite_test_mono_strict.csproj", "{06413209-2415-4541-8033-D5AAFF778A23}"\r
+EndProject\r
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DbLinq_test_ndb_strict", "DbLinq\Test\DbLinq_test_ndb_strict.csproj", "{AB60629C-6B19-4465-89AA-DBD7A0428F4B}"\r
+EndProject\r
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
                Debug|Any CPU = Debug|Any CPU\r
@@ -64,10 +91,6 @@ Global
                {858BAFF7-542F-4DBB-940B-57333E4DB7CE}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
                {858BAFF7-542F-4DBB-940B-57333E4DB7CE}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
                {858BAFF7-542F-4DBB-940B-57333E4DB7CE}.Release|Any CPU.Build.0 = Release|Any CPU\r
-               {E636DAE5-1245-4ED1-A709-057935D20E24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
-               {E636DAE5-1245-4ED1-A709-057935D20E24}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
-               {E636DAE5-1245-4ED1-A709-057935D20E24}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
-               {E636DAE5-1245-4ED1-A709-057935D20E24}.Release|Any CPU.Build.0 = Release|Any CPU\r
                {90D57CD9-D704-409E-88A1-0F22AC79065A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
                {90D57CD9-D704-409E-88A1-0F22AC79065A}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
                {90D57CD9-D704-409E-88A1-0F22AC79065A}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
@@ -84,8 +107,68 @@ Global
                {E1AB58E4-357E-4031-90F3-6AABA9623047}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
                {E1AB58E4-357E-4031-90F3-6AABA9623047}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
                {E1AB58E4-357E-4031-90F3-6AABA9623047}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {408D1FEB-71F4-4666-ADAD-194616D99B94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {408D1FEB-71F4-4666-ADAD-194616D99B94}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {408D1FEB-71F4-4666-ADAD-194616D99B94}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {408D1FEB-71F4-4666-ADAD-194616D99B94}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {EA47FE75-0E41-4ABF-B355-9667E78072E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {EA47FE75-0E41-4ABF-B355-9667E78072E9}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {EA47FE75-0E41-4ABF-B355-9667E78072E9}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {EA47FE75-0E41-4ABF-B355-9667E78072E9}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {A348FBCE-2246-48FF-9862-35553B4B284C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {A348FBCE-2246-48FF-9862-35553B4B284C}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {A348FBCE-2246-48FF-9862-35553B4B284C}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {A348FBCE-2246-48FF-9862-35553B4B284C}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {6661D6CB-8AE4-4CEF-A81E-8A4AFB6A1CEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {6661D6CB-8AE4-4CEF-A81E-8A4AFB6A1CEE}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {6661D6CB-8AE4-4CEF-A81E-8A4AFB6A1CEE}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {6661D6CB-8AE4-4CEF-A81E-8A4AFB6A1CEE}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {4A829353-5A69-4EFD-8CD7-92C9D5DEB102}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {4A829353-5A69-4EFD-8CD7-92C9D5DEB102}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {4A829353-5A69-4EFD-8CD7-92C9D5DEB102}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {4A829353-5A69-4EFD-8CD7-92C9D5DEB102}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {3B13F240-D5E3-4BD4-BA4B-8CBDEE18207A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {3B13F240-D5E3-4BD4-BA4B-8CBDEE18207A}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {3B13F240-D5E3-4BD4-BA4B-8CBDEE18207A}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {3B13F240-D5E3-4BD4-BA4B-8CBDEE18207A}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {D63B7158-6F23-4B35-9C39-871D37C9BAA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {D63B7158-6F23-4B35-9C39-871D37C9BAA6}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {D63B7158-6F23-4B35-9C39-871D37C9BAA6}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {D63B7158-6F23-4B35-9C39-871D37C9BAA6}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {6BC45425-283A-4D51-881A-D1E14A699D57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {6BC45425-283A-4D51-881A-D1E14A699D57}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {6BC45425-283A-4D51-881A-D1E14A699D57}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {6BC45425-283A-4D51-881A-D1E14A699D57}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {858BAFF7-542F-4DBB-9C9B-57FCDE0DB7CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {858BAFF7-542F-4DBB-9C9B-57FCDE0DB7CE}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {858BAFF7-542F-4DBB-9C9B-57FCDE0DB7CE}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {858BAFF7-542F-4DBB-9C9B-57FCDE0DB7CE}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {858BAFF7-533F-4DBB-9C9B-57FCDE4DB7CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {858BAFF7-533F-4DBB-9C9B-57FCDE4DB7CE}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {858BAFF7-533F-4DBB-9C9B-57FCDE4DB7CE}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {858BAFF7-533F-4DBB-9C9B-57FCDE4DB7CE}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {858BAFE8-533F-4DBB-9C9B-57FCDE4DB7CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {858BAFE8-533F-4DBB-9C9B-57FCDE4DB7CE}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {858BAFE8-533F-4DBB-9C9B-57FCDE4DB7CE}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {858BAFE8-533F-4DBB-9C9B-57FCDE4DB7CE}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {68267FB0-0771-4507-942F-395A1AE556FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {68267FB0-0771-4507-942F-395A1AE556FD}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {68267FB0-0771-4507-942F-395A1AE556FD}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {68267FB0-0771-4507-942F-395A1AE556FD}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {06413209-2415-4541-8033-D5AAFF778A23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {06413209-2415-4541-8033-D5AAFF778A23}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {06413209-2415-4541-8033-D5AAFF778A23}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {06413209-2415-4541-8033-D5AAFF778A23}.Release|Any CPU.Build.0 = Release|Any CPU\r
+               {AB60629C-6B19-4465-89AA-DBD7A0428F4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+               {AB60629C-6B19-4465-89AA-DBD7A0428F4B}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+               {AB60629C-6B19-4465-89AA-DBD7A0428F4B}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+               {AB60629C-6B19-4465-89AA-DBD7A0428F4B}.Release|Any CPU.Build.0 = Release|Any CPU\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
        EndGlobalSection\r
+       GlobalSection(MonoDevelopProperties) = preSolution\r
+               version = 0.1\r
+               StartupItem = ..\examples\DbLinq.MySql.Example\DbLinq.MySql.Example.csproj\r
+       EndGlobalSection\r
 EndGlobal\r
index 7d964665dbe5e76e50d64e856a1c73d2da91fac7..7fcffee2709b3a8bf3e848bf9ff84f5f8f27550d 100644 (file)
@@ -1,22 +1,22 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<TestRunConfiguration name="Local Test Run" id="4bf8ab57-0a3e-42e7-8cf7-3cb20d6d9ec5" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2006">
-  <Description>This is a default test run configuration for a local test run.</Description>
-  <CodeCoverage enabled="true" keyFile="DbLinq.snk">
-    <Regular>
-      <CodeCoverageItem binaryFile="DbLinq\bin\DbLinq.dll" pdbFile="DbLinq\bin\DbLinq.pdb" instrumentInPlace="true" />
-    </Regular>
-  </CodeCoverage>
-  <TestTypeSpecific>
-    <WebTestRunConfiguration testTypeId="4e7599fa-5ecb-43e9-a887-cd63cf72d207">
-      <Browser name="Internet Explorer 7.0">
-        <Headers>
-          <Header name="User-Agent" value="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" />
-          <Header name="Accept" value="*/*" />
-          <Header name="Accept-Language" value="{{$IEAcceptLanguage}}" />
-          <Header name="Accept-Encoding" value="GZIP" />
-        </Headers>
-      </Browser>
-      <Network Name="LAN" BandwidthInKbps="0" />
-    </WebTestRunConfiguration>
-  </TestTypeSpecific>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<TestRunConfiguration name="Local Test Run" id="4bf8ab57-0a3e-42e7-8cf7-3cb20d6d9ec5" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2006">\r
+  <Description>This is a default test run configuration for a local test run.</Description>\r
+  <CodeCoverage enabled="true" keyFile="DbLinq.snk">\r
+    <Regular>\r
+      <CodeCoverageItem binaryFile="DbLinq\bin\DbLinq.dll" pdbFile="DbLinq\bin\DbLinq.pdb" instrumentInPlace="true" />\r
+    </Regular>\r
+  </CodeCoverage>\r
+  <TestTypeSpecific>\r
+    <WebTestRunConfiguration testTypeId="4e7599fa-5ecb-43e9-a887-cd63cf72d207">\r
+      <Browser name="Internet Explorer 7.0">\r
+        <Headers>\r
+          <Header name="User-Agent" value="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" />\r
+          <Header name="Accept" value="*/*" />\r
+          <Header name="Accept-Language" value="{{$IEAcceptLanguage}}" />\r
+          <Header name="Accept-Encoding" value="GZIP" />\r
+        </Headers>\r
+      </Browser>\r
+      <Network Name="LAN" BandwidthInKbps="0" />\r
+    </WebTestRunConfiguration>\r
+  </TestTypeSpecific>\r
 </TestRunConfiguration>
\ No newline at end of file