实例介绍
Simple.Data是一个轻量级的、动态的.NET数据访问组件,用C#编写。
它是什么?受到对易于使用的数据库访问组件的需求的驱使,它可以防止SQL注入攻击,同时不需要大量的样板ADO.NET代码或预先生成的ORM模型。
而不是:
public User FindUserByEmail(string email) { User user = null; using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Default"].ConnectionString)) using (var command = new SqlCommand("select id, email, hashed_password, salt from users where email = @email", connection)) { command.Parameters.Add("@email", SqlDbType.NVarChar, 50).Value = form.Email); connection.Open(); using (var reader = command.ExecuteReader()) { if (reader.Read()) { user = new User {Id = reader.GetInt32(0), Email = reader.GetString(1), Password = reader.GetString(2), salt = reader.GetString(3)}; } } } return user; }
为什么不直接写
public User FindUserByEmail(string email) { return Database.Open().Users.FindAllByEmail(email).FirstOrDefault(); }
【实例截图】
【核心代码】
文件清单
└── Simple.Data-65ff01e482ce71190869001c221caa140feb70e5
├── Assemblies
│ ├── Microsoft.SqlServer.Types.dll
│ ├── sqlceca35.dll
│ ├── sqlcecompact35.dll
│ ├── sqlceer35EN.dll
│ ├── sqlceme35.dll
│ ├── sqlceoledb35.dll
│ ├── sqlceqp35.dll
│ ├── sqlcese35.dll
│ └── System.Data.SqlServerCe.dll
├── AutoTest.config
├── cleanup.sh
├── CommonAssemblyInfo.cs
├── LICENSE.txt
├── NugetPackAll.cmd
├── NugetPushAll.cmd
├── packages
│ ├── NUnit.2.5.10.11092
│ │ ├── fit-license.txt
│ │ ├── lib
│ │ │ ├── nunit.framework.dll
│ │ │ ├── nunit.framework.xml
│ │ │ ├── nunit.mocks.dll
│ │ │ └── pnunit.framework.dll
│ │ ├── license.txt
│ │ ├── Logo.ico
│ │ ├── NUnitFitTests.html
│ │ └── tools
│ │ ├── agent.conf
│ │ ├── agent.log.conf
│ │ ├── launcher.log.conf
│ │ ├── lib
│ │ │ ├── Failure.png
│ │ │ ├── fit.dll
│ │ │ ├── Ignored.png
│ │ │ ├── Inconclusive.png
│ │ │ ├── log4net.dll
│ │ │ ├── nunit-console-runner.dll
│ │ │ ├── nunit.core.dll
│ │ │ ├── nunit.core.interfaces.dll
│ │ │ ├── nunit.fixtures.dll
│ │ │ ├── nunit-gui-runner.dll
│ │ │ ├── nunit.uiexception.dll
│ │ │ ├── nunit.uikit.dll
│ │ │ ├── nunit.util.dll
│ │ │ ├── Skipped.png
│ │ │ └── Success.png
│ │ ├── nunit-agent.exe
│ │ ├── nunit-agent.exe.config
│ │ ├── nunit-agent-x86.exe
│ │ ├── nunit-agent-x86.exe.config
│ │ ├── nunit-console.exe
│ │ ├── nunit-console.exe.config
│ │ ├── nunit-console-x86.exe
│ │ ├── nunit-console-x86.exe.config
│ │ ├── nunit.exe
│ │ ├── nunit.exe.config
│ │ ├── nunit.framework.dll
│ │ ├── NUnitTests.config
│ │ ├── NUnitTests.nunit
│ │ ├── NUnitTests.VisualState.xml
│ │ ├── nunit-x86.exe
│ │ ├── nunit-x86.exe.config
│ │ ├── pnunit-agent.exe
│ │ ├── pnunit-agent.exe.config
│ │ ├── pnunit.framework.dll
│ │ ├── pnunit-launcher.exe
│ │ ├── pnunit-launcher.exe.config
│ │ ├── pnunit.tests.dll
│ │ ├── runFile.exe
│ │ ├── runFile.exe.config
│ │ ├── runpnunit.bat
│ │ ├── test.conf
│ │ └── TestResult.xml
│ ├── repositories.config
│ ├── Simple.Data.Ado.0.6.1
│ │ └── lib
│ │ └── net40
│ │ └── Simple.Data.Ado.dll
│ ├── Simple.Data.Core.0.6.1
│ │ └── lib
│ │ └── net40
│ │ └── Simple.Data.dll
│ ├── Simple.Data.SqlCompact40.0.6.1
│ │ └── lib
│ │ └── net40
│ │ └── Simple.Data.SqlCe40.dll
│ ├── SqlServerCompact.4.0.8482.1
│ │ ├── Content
│ │ │ └── web.config.transform
│ │ ├── lib
│ │ │ └── System.Data.SqlServerCe.dll
│ │ ├── NativeBinaries
│ │ │ ├── amd64
│ │ │ │ ├── sqlcecompact40.dll
│ │ │ │ ├── sqlceer40EN.dll
│ │ │ │ ├── sqlceme40.dll
│ │ │ │ ├── sqlceqp40.dll
│ │ │ │ └── sqlcese40.dll
│ │ │ └── x86
│ │ │ ├── sqlcecompact40.dll
│ │ │ ├── sqlceer40EN.dll
│ │ │ ├── sqlceme40.dll
│ │ │ ├── sqlceqp40.dll
│ │ │ └── sqlcese40.dll
│ │ ├── SQLCE_EULA_ENU.rtf
│ │ └── Tools
│ │ ├── GetSqlCEPostBuildCmd.ps1
│ │ ├── install.ps1
│ │ └── uninstall.ps1
│ └── Trespasser.1.1
│ └── lib
│ └── net40
│ └── Trespasser.dll
├── PerformanceTestConsole
│ ├── app.config
│ ├── packages.config
│ ├── PerformanceTestConsole.csproj
│ ├── Program.cs
│ └── Properties
│ └── AssemblyInfo.cs
├── PerformanceTestConsole111123.vsp
├── PerformanceTestConsole.psess
├── ProfilingApp
│ ├── App.config
│ ├── CastTask.cs
│ ├── FindAllByTask.cs
│ ├── FindByTask.cs
│ ├── IProfileTask.cs
│ ├── ProfilingApp.csproj
│ ├── Program.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── QueryWithCountTask.cs
│ └── Resources
│ └── DatabaseResetSql.txt
├── README.md
├── Releases
│ └── CopyReleases.cmd
├── replacenugetversion.sh
├── Simple.Data
│ ├── ActionDisposable.cs
│ ├── Adapter.cs
│ ├── AdapterException.cs
│ ├── AdapterFactory.cs
│ ├── AdapterHelper.cs
│ ├── AdapterMethodDynamicInvoker.cs
│ ├── AdapterWithFunctionsExtensions.cs
│ ├── AdoCompatibleComparer.cs
│ ├── AllColumnsSpecialReference.cs
│ ├── app.config
│ ├── ArgumentCollection.cs
│ ├── Argument.cs
│ ├── AssemblyEx.cs
│ ├── BadExpressionException.cs
│ ├── BinderHelper.cs
│ ├── CachingAdapterFactory.cs
│ ├── CastEnumerable.cs
│ ├── Command.cs
│ ├── Commands
│ │ ├── AllCommand.cs
│ │ ├── ArgumentHelper.cs
│ │ ├── CommandFactory.cs
│ │ ├── DeleteAllCommand.cs
│ │ ├── DeleteByCommand.cs
│ │ ├── ExecuteFunctionCommand.cs
│ │ ├── ExistsByCommand.cs
│ │ ├── ExistsCommand.cs
│ │ ├── FindAllByCommand.cs
│ │ ├── FindAllCommand.cs
│ │ ├── FindByCommand.cs
│ │ ├── FindCommand.cs
│ │ ├── GetCommand.cs
│ │ ├── GetCountByCommand.cs
│ │ ├── GetCountCommand.cs
│ │ ├── ICommand.cs
│ │ ├── InsertCommand.cs
│ │ ├── QueryByCommand.cs
│ │ ├── QueryCommand.cs
│ │ ├── ResultHelper.cs
│ │ ├── UpdateAllCommand.cs
│ │ ├── UpdateByCommand.cs
│ │ ├── UpdateCommand.cs
│ │ ├── UpsertByCommand.cs
│ │ └── UpsertCommand.cs
│ ├── CommonTypes.cs
│ ├── Composer.cs
│ ├── ConcreteCollectionTypeCreator.cs
│ ├── ConcreteObject.cs
│ ├── ConcreteTypeCreator.cs
│ ├── CountSpecialReference.cs
│ ├── Database.cs
│ ├── Database.Open.cs
│ ├── DatabaseOpener.cs
│ ├── DatabaseOpenerMethods.cs
│ ├── DatabaseRunner.cs
│ ├── DataStrategy.cs
│ ├── DataStrategyWithOptions.cs
│ ├── DictionaryCloner.cs
│ ├── DistinctClause.cs
│ ├── DynamicSchema.cs
│ ├── DynamicTable.cs
│ ├── EnumerableEx.cs
│ ├── ErrorCallback.cs
│ ├── ExistsSpecialReference.cs
│ ├── ExpressionHelper.cs
│ ├── Extensions
│ │ ├── ArrayExtensions.cs
│ │ ├── BinderExtensions.cs
│ │ ├── DynamicStringExtensions.cs
│ │ ├── EnumerableExtensions.cs
│ │ ├── HomogenizeEx.cs
│ │ ├── IDictionaryExtensions.cs
│ │ ├── ObjectEx.cs
│ │ ├── ResultSetExtensions.cs
│ │ └── StringExtensions.cs
│ ├── ForUpdateClause.cs
│ ├── FunctionReference.cs
│ ├── FunctionReturnType.cs
│ ├── FunctionSignature.cs
│ ├── Future1.cs
│ ├── HavingClause.cs
│ ├── HomogenizedEqualityComparer.cs
│ ├── IAdapterFactory.cs
│ ├── IAdapterTransaction.cs
│ ├── IAdapterWithFunctions.cs
│ ├── IAdapterWithRelation.cs
│ ├── IAdapterWithTransactions.cs
│ ├── IDatabase.cs
│ ├── IDatabaseOpener.cs
│ ├── InMemoryAdapter.cs
│ ├── InMemoryAdapterIAdapterWithRelation.cs
│ ├── InMemoryAdapterIAdapterWithTransactions.cs
│ ├── IPluralizer.cs
│ ├── IRange.cs
│ ├── JoinClause.cs
│ ├── JoinType.cs
│ ├── MathReference.cs
│ ├── Maybe.cs
│ ├── MefHelper.cs
│ ├── MethodNameParser.cs
│ ├── NugetPack.cmd
│ ├── NugetPush.cmd
│ ├── ObjectReference.cs
│ ├── OfTypeEnumerable.cs
│ ├── OptimizingDelegateFactory.cs
│ ├── OptionsBase.cs
│ ├── OrderByClause.cs
│ ├── OrderByDirection.cs
│ ├── Promise.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ └── Resources.resources
│ ├── PropertySetterBuilder.cs
│ ├── QueryPolyfills
│ │ ├── AggregateValueResolver.cs
│ │ ├── DictionaryCreatorFactory.cs
│ │ ├── DictionaryEqualityComparer.cs
│ │ ├── DictionaryQueryRunner.cs
│ │ ├── FunctionHandlers.cs
│ │ ├── FunctionValueResolver.cs
│ │ ├── GroupingHandler.cs
│ │ ├── ObjectMaths.cs
│ │ ├── ObjectValueResolver.cs
│ │ ├── OrderByClauseHandler.cs
│ │ ├── SelectClauseHandler.cs
│ │ ├── ValueResolver.cs
│ │ └── WhereClauseHandler.cs
│ ├── Range1.cs
│ ├── Range.cs
│ ├── RunStrategy.cs
│ ├── SelectClause.cs
│ ├── SimpleDataConfigurationSection.cs
│ ├── Simple.Data.csproj
│ ├── Simple.Data.csproj.vspscc
│ ├── Simple.Data.dll.config
│ ├── SimpleDataException.cs
│ ├── Simple.Data.nuspec
│ ├── SimpleDataTraceSources.cs
│ ├── SimpleEmptyExpression.cs
│ ├── SimpleExpression.cs
│ ├── SimpleExpressionType.cs
│ ├── SimpleFunction.cs
│ ├── SimpleList.cs
│ ├── SimpleObservable.cs
│ ├── SimpleOrderByItem.cs
│ ├── SimpleQueryClauseBase.cs
│ ├── SimpleQuery.cs
│ ├── SimpleRecord.cs
│ ├── SimpleRecord.Dictionary2.cs
│ ├── SimpleReference.cs
│ ├── SimpleResultSet.cs
│ ├── SimpleTransaction.cs
│ ├── SkipClause.cs
│ ├── SpecialReference.cs
│ ├── TakeClause.cs
│ ├── TransactionRunner.cs
│ ├── TypeExtensions.cs
│ ├── UnresolvableObjectException.cs
│ ├── WhereClause.cs
│ ├── WithClause.cs
│ ├── WithCountClause.cs
│ ├── WithMode.cs
│ └── WithType.cs
├── Simple.Data.AdapterApi
│ ├── DatabaseHelper.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── Simple.Data.AdapterApi.csproj
├── Simple.Data.Ado
│ ├── AdoAdapter.cs
│ ├── AdoAdapterException.cs
│ ├── AdoAdapterFinder.cs
│ ├── AdoAdapterGetter.cs
│ ├── AdoAdapter.IAdapterWithFunctions.cs
│ ├── AdoAdapter.IAdapterWithRelation.cs
│ ├── AdoAdapter.IAdapterWithTransactions.cs
│ ├── AdoAdapterInserter.cs
│ ├── AdoAdapterQueryRunner.cs
│ ├── AdoAdapterRelatedFinder.cs
│ ├── AdoAdapterTransaction.cs
│ ├── AdoAdapterUpserter.cs
│ ├── AdoOptimizingDelegateFactory.cs
│ ├── AdoOptions.cs
│ ├── app.config
│ ├── BulkInserter.cs
│ ├── BulkInserterHelper.cs
│ ├── BulkInserterTransactionHelper.cs
│ ├── BulkUpdater.cs
│ ├── CommandBuilder.cs
│ ├── CommandHelper.cs
│ ├── CommandTemplate.cs
│ ├── ConnectionEx.cs
│ ├── ConnectionScope.cs
│ ├── DatabaseObservable.cs
│ ├── DataParameterCollectionEx.cs
│ ├── DataReaderEnumerable.cs
│ ├── DataReaderExtensions.cs
│ ├── DataReaderMultipleEnumerator.cs
│ ├── DataRecordExtensions.cs
│ ├── DbCommandExtensions.cs
│ ├── DbConnectionEx.cs
│ ├── DbConnectionExtensions.cs
│ ├── DelegatingConnectionBase1.cs
│ ├── DeleteHelper.cs
│ ├── DictionaryExtensions.cs
│ ├── EagerLoadingEnumerable.cs
│ ├── EventHandlerEx.cs
│ ├── ExpressionFormatterBase.cs
│ ├── ExpressionFormatter.cs
│ ├── ExpressionHasher.cs
│ ├── FindHelper.cs
│ ├── FunctionNameConverter.cs
│ ├── GenericDbParameterFactory.cs
│ ├── HomogenizedDictionaryIndex.cs
│ ├── HomogenizedKeyDictionary.cs
│ ├── IBulkInserter.cs
│ ├── IBulkUpdater.cs
│ ├── ICommandBuilder.cs
│ ├── IConnectionProvider.cs
│ ├── ICustomInserter.cs
│ ├── ICustomQueryBuilder.cs
│ ├── IDbParameterFactory.cs
│ ├── IExpressionFormatter.cs
│ ├── IFunctionNameConverter.cs
│ ├── IObservableQueryRunner.cs
│ ├── IQueryPager.cs
│ ├── ISchemaConnectionProvider.cs
│ ├── ISchemaGetter.cs
│ ├── ISqlOptimizer.cs
│ ├── Joiner.cs
│ ├── ListExtensions.cs
│ ├── NugetPack.cmd
│ ├── NugetPush.cmd
│ ├── ObjectName.cs
│ ├── OptimizedDictionary2.cs
│ ├── OptimizedDictionary.cs
│ ├── OptimizedDictionaryIndex.cs
│ ├── ParameterTemplate.cs
│ ├── ProcedureExecutor.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── ProviderAssemblyAttributeBase.cs
│ ├── ProviderHelper.cs
│ ├── QueryBuilderBase.cs
│ ├── QueryBuilder.cs
│ ├── Schema
│ │ ├── AmbiguousObjectNameException.cs
│ │ ├── ColumnCollection.cs
│ │ ├── Column.cs
│ │ ├── DatabaseSchema.cs
│ │ ├── ForeignKeyCollection.cs
│ │ ├── ForeignKey.cs
│ │ ├── ISchemaProvider.cs
│ │ ├── Key.cs
│ │ ├── Parameter.cs
│ │ ├── ProcedureCollection.cs
│ │ ├── Procedure.cs
│ │ ├── TableCollection.cs
│ │ ├── Table.cs
│ │ ├── TableJoin.cs
│ │ └── TableType.cs
│ ├── SchemaResolutionException.cs
│ ├── Simple.Data.Ado.csproj
│ ├── Simple.Data.Ado.nuspec
│ ├── SimpleReferenceFormatter.cs
│ ├── SubDictionary.cs
│ ├── TraceHelper.cs
│ ├── TupleExtensions.cs
│ ├── TypeHelper.cs
│ └── UpdateHelper.cs
├── Simple.Data.Ado.Test
│ ├── AdoAdapterExceptionTest.cs
│ ├── ConnectionModifierTest.cs
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ProviderHelperTest.cs
│ ├── ProviderTest.cs
│ ├── Simple.Data.Ado.Test.csproj
│ ├── TableCollectionTest.cs
│ ├── TestCustomInserter.cs
│ └── TestProviderAssemblyAttribute.cs
├── Simple.Data.BehaviourTest
│ ├── AmbiguousForeignKeyTest.cs
│ ├── App.config
│ ├── BulkInsertTest.cs
│ ├── DatabaseIntegrationContext.cs
│ ├── DeleteTest.cs
│ ├── ExceptionsTesting.cs
│ ├── FindTest.cs
│ ├── GetCountTest.cs
│ ├── GetTest.cs
│ ├── InsertTest.cs
│ ├── NameResolutionTests.cs
│ ├── NaturalJoinTest.cs
│ ├── NaturalNamingTest.cs
│ ├── packages.config
│ ├── ProcedureTest.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Query
│ │ ├── DistinctTest.cs
│ │ ├── ExplicitJoinTest.cs
│ │ ├── FunctionTest.cs
│ │ ├── HavingTest.cs
│ │ ├── QueryTest.cs
│ │ ├── WhereTest.cs
│ │ ├── WithCountTest.cs
│ │ └── WithTest.cs
│ ├── RangeAndArrayFindTest.cs
│ ├── SchemaHelper.cs
│ ├── SchemaQualifiedTableTest.cs
│ ├── Simple.Data.BehaviourTest.csproj
│ ├── StopUsingMockTest.cs
│ ├── TestTraceListener.cs
│ ├── TraceSettingsTest.cs
│ ├── TransactionTest.cs
│ ├── UpdateTest.cs
│ └── User.cs
├── Simple.Data.InMemoryTest
│ ├── CanAssignArray.cs
│ ├── InMemoryTests.cs
│ ├── NameResolutionTest.cs
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Simple.Data.InMemoryTest.csproj
│ └── SimpleQueryConversionTests.cs
├── Simple.Data.Mocking
│ ├── Ado
│ │ ├── DataRowExtensions.cs
│ │ ├── DataTableExtensions.cs
│ │ ├── MockConnectionProvider.cs
│ │ ├── MockDatabase.cs
│ │ ├── MockDataParameterCollection.cs
│ │ ├── MockDataParameter.cs
│ │ ├── MockDataReader.cs
│ │ ├── MockDataRecord.cs
│ │ ├── MockDbCommand.cs
│ │ ├── MockDbConnection.cs
│ │ ├── MockDbTransaction.cs
│ │ └── MockSchemaProvider.cs
│ ├── MockHelper.cs
│ ├── NugetPack.cmd
│ ├── NugetPush.cmd
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Simple.Data.Mocking.csproj
│ ├── Simple.Data.Mocking.nuspec
│ ├── XElementExtensions.cs
│ ├── XmlMockAdapter.cs
│ └── XmlPredicateBuilder.cs
├── Simple.Data.Mocking.Test
│ ├── MockConnectionSchemaTest.cs
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Simple.Data.Mocking.Test.csproj
│ └── XmlMockAdapterTest.cs
├── Simple.Data-Mono.sln
├── Simple.Data-Mono.userprefs
├── Simple_Data.ndproj
├── Simple.Data.sln
├── Simple.Data.sln.DotSettings
├── Simple.Data.SqlCe35
│ ├── app.config
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ └── Resources.resx
│ ├── Resources
│ │ ├── ForeignKeysSql.txt
│ │ └── PrimaryKeysSql.txt
│ ├── Simple.Data.SqlCe35.csproj
│ ├── SqlCe35ConnectionProvider.cs
│ ├── SqlCe35SchemaProvider.cs
│ ├── sqlceca35.dll
│ ├── sqlcecompact35.dll
│ ├── sqlceer35EN.dll
│ ├── sqlceme35.dll
│ ├── sqlceoledb35.dll
│ ├── sqlceqp35.dll
│ └── sqlcese35.dll
├── Simple.Data.SqlCe35Test
│ ├── FindTests.cs
│ ├── OrderDetailTests.cs
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── SchemaTests
│ │ └── DatabaseSchemaTests.cs
│ ├── Simple.Data.SqlCe35Test.csproj
│ ├── sqlceca35.dll
│ ├── sqlcecompact35.dll
│ ├── sqlceer35EN.dll
│ ├── sqlceme35.dll
│ ├── sqlceoledb35.dll
│ ├── sqlceqp35.dll
│ ├── sqlcese35.dll
│ ├── TestDatabase.sdf
│ └── User.cs
├── Simple.Data.SqlCe40
│ ├── DbTypeLookup.cs
│ ├── NugetPack.cmd
│ ├── NugetPush.cmd
│ ├── packages.config
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resources
│ │ └── Resources.resx
│ ├── Resources
│ │ ├── ForeignKeysSql.txt
│ │ └── PrimaryKeysSql.txt
│ ├── Simple.Data.SqlCe40.csproj
│ ├── Simple.Data.SqlCe40.nuspec
│ ├── SqlCe40ConnectionProvider.cs
│ ├── SqlCe40ProviderAttribute.cs
│ ├── SqlCe40QueryPager.cs
│ ├── SqlCe40SchemaProvider.cs
│ ├── SqlCeColumn.cs
│ ├── SqlCeDbParameterFactory.cs
│ └── SqlTypeResolver.cs
├── Simple.Data.SqlCe40Test
│ ├── ConnectionProviderTest.cs
│ ├── FindTests.cs
│ ├── InsertTests.cs
│ ├── Northwind.sdf
│ ├── NorthwindTests.cs
│ ├── OrderDetailTests.cs
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── QueryTest.cs
│ ├── SchemaProviderTest.cs
│ ├── SchemaTests
│ │ └── DatabaseSchemaTests.cs
│ ├── Simple.Data.SqlCe40Test.csproj
│ ├── SqlCe40QueryPagerTest.cs
│ ├── TestDatabase.sdf
│ ├── TestDatabase.sdf.bak
│ └── User.cs
├── Simple.Data.SqlServer
│ ├── DbTypeLookup.cs
│ ├── NugetPack.cmd
│ ├── NugetPush.cmd
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resources
│ │ └── Resources.resx
│ ├── Resources
│ │ ├── ForeignKeysSql.txt
│ │ └── PrimaryKeySql.txt
│ ├── Simple.Data.SqlServer.csproj
│ ├── Simple.Data.SqlServer.nuspec
│ ├── SqlBulkInserter.cs
│ ├── SqlColumn.cs
│ ├── SqlCommandOptimizer.cs
│ ├── SqlConnectionProvider.cs
│ ├── SqlCustomInserter.cs
│ ├── SqlCustomQueryBuilder.cs
│ ├── SqlDbParameterFactory.cs
│ ├── SqlDbTypeEx.cs
│ ├── SqlObservableQueryRunner.cs
│ ├── SqlQueryBuilder.cs
│ ├── SqlQueryPager.cs
│ ├── SqlSchemaProvider.cs
│ ├── SqlServerProviderAttribute.cs
│ └── SqlTypeResolver.cs
├── Simple.Data.SqlTest
│ ├── app.config
│ ├── BulkInsertTest.cs
│ ├── ConversionTests.cs
│ ├── DatabaseHelper.cs
│ ├── DatabaseOpenerTests.cs
│ ├── DbImage.cs
│ ├── DeleteTest.cs
│ ├── EnumTest.cs
│ ├── FindTests.cs
│ ├── FunctionTest.cs
│ ├── GetTests.cs
│ ├── InsertTests.cs
│ ├── NaturalJoinTest.cs
│ ├── OrderDetailTests.cs
│ ├── packages.config
│ ├── ProcedureTest.cs
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resources
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── QueryTest.cs
│ ├── Resources
│ │ ├── DatabaseReset.txt
│ │ ├── GetImage.cs
│ │ └── test.png
│ ├── SchemaQualifiedTests.cs
│ ├── SchemaTests
│ │ ├── DatabaseSchemaTests.cs
│ │ └── DataTypeTests.cs
│ ├── SetupFixture.cs
│ ├── Simple.Data.SqlTest.csproj
│ ├── SqlQueryPagerTest.cs
│ ├── TestTraceListener.cs
│ ├── TransactionTests.cs
│ ├── UpdateTests.cs
│ ├── UpsertTests.cs
│ ├── User.cs
│ └── WeirdTypeTest.cs
├── Simple.Data.TestHelper
│ ├── DatabaseInternalsEx.cs
│ ├── DatabaseSchemaTestsBase.cs
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── Simple.Data.TestHelper.csproj
├── Simple.Data.UnitTest
│ ├── AdapterFactoryTest.cs
│ ├── BeginTransactionWithIsolataionLevelTest.cs
│ ├── BinderHelperTest.cs
│ ├── ComposerTest.cs
│ ├── ConcreteCollectionTypeCreatorTest.cs
│ ├── ConcreteTypeCreatorTest.cs
│ ├── DatabaseOpenerTest.cs
│ ├── DictionaryClonerTest.cs
│ ├── DictionaryQueryRunnerTest.cs
│ ├── DynamicEnumerableTest.cs
│ ├── DynamicRecordTest.cs
│ ├── DynamicReferenceTest.cs
│ ├── DynamicStringExtensionsTest.cs
│ ├── DynamicTableTest.cs
│ ├── EagerLoadingEnumerableTest.cs
│ ├── ExpressionHelperTest.cs
│ ├── GroupingHandlerTest.cs
│ ├── ListHelper.cs
│ ├── MathReferenceTest.cs
│ ├── MaybeTest.cs
│ ├── MethodNameParserTest.cs
│ ├── ObjectReferenceTest.cs
│ ├── packages.config
│ ├── PluralizationTest.cs
│ ├── PromiseTest.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── PropertySetterBuilderTest.cs
│ ├── RangeTest.cs
│ ├── SimpleDataExceptionTest.cs
│ ├── Simple.Data.UnitTest.csproj
│ ├── SimpleExpressionTest.cs
│ ├── SimpleListAsListTest.cs
│ ├── SimpleListTest.cs
│ ├── SimpleQueryTest.cs
│ ├── SimpleRecordAsDictionaryTest.cs
│ ├── SimpleRecordCloneTest.cs
│ ├── SimpleRecordConvertTest.cs
│ ├── SimpleResultSetTest.cs
│ ├── SpecialReferenceTests.cs
│ ├── StringExtensionsTest.cs
│ └── UnresolvableObjectExceptionTest.cs
├── Simple.Data.userprefs
└── Simple.Data.vsmdi
77 directories, 635 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论