├── .gitignore
├── AsyncPoco.Tests
├── App.config
├── AsyncPoco.Tests.csproj
├── ColumnMapper.cs
├── DatabaseTests.cs
├── MySql
│ ├── MySqlTests.cs
│ ├── mysql_done.sql
│ └── mysql_init.sql
├── PostgreSql
│ ├── PostgreSqlTests.cs
│ ├── postgresql_done.sql
│ └── postgresql_init.sql
├── SQLite
│ ├── SQLiteTests.cs
│ ├── sqlite_done.sql
│ └── sqlite_init.sql
├── SqlBuilderTests.cs
├── SqlServer
│ ├── SqlServerTests.cs
│ ├── sqlserver_done.sql
│ └── sqlserver_init.sql
├── SqlServerCE
│ ├── SqlServerCETests.cs
│ ├── petapoco.sdf
│ ├── sqlserverce_done.sql
│ └── sqlserverce_init.sql
├── Utils.cs
└── poco.cs
├── AsyncPoco.sln
├── AsyncPoco
├── AsyncPoco.csproj
├── Attributes
│ ├── ColumnAttribute.cs
│ ├── ComputedColumnAttribute.cs
│ ├── ExplicitColumnsAttribute.cs
│ ├── IgnoreAttribute.cs
│ ├── PrimaryKeyAttribute.cs
│ ├── ResultColumnAttribute.cs
│ └── TableNameAttribute.cs
├── Core
│ ├── AnsiString.cs
│ ├── ColumnInfo.cs
│ ├── DatabaseType.cs
│ ├── ExpandoColumn.cs
│ ├── IMapper.cs
│ ├── Mappers.cs
│ ├── MultiPocoFactory.cs
│ ├── Page.cs
│ ├── PocoColumn.cs
│ ├── PocoData.cs
│ ├── Sql.cs
│ ├── StandardMapper.cs
│ ├── TableInfo.cs
│ └── Transaction.cs
├── Database.cs
├── DatabaseTypes
│ ├── MySqlDatabaseType.cs
│ ├── OracleDatabaseType.cs
│ ├── PostgreSQLDatabaseType.cs
│ ├── SQLiteDatabaseType.cs
│ ├── SqlServerCEDatabaseType.cs
│ └── SqlServerDatabaseType.cs
├── IDatabase.cs
└── Utilities
│ ├── ArrayKey.cs
│ ├── AutoSelectHelper.cs
│ ├── Cache.cs
│ ├── EnumMapper.cs
│ ├── PagingHelper.cs
│ ├── ParametersHelper.cs
│ └── Singleton.cs
├── LICENSE.txt
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | bin
2 | obj
3 | *.suo
4 | *.nupkg
5 | packages
6 | csj/csj.exe
7 | csj/csj.pdb
8 | *.user
9 | .vs
--------------------------------------------------------------------------------
/AsyncPoco.Tests/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/AsyncPoco.Tests/AsyncPoco.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net45;netcoreapp1.0;netcoreapp2.0
5 |
6 |
7 |
8 |
9 | PreserveNewest
10 | petapoco.sdf
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/AsyncPoco.Tests/ColumnMapper.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using System;
3 | using System.Reflection;
4 |
5 | namespace AsyncPoco.Tests
6 | {
7 | public class Poco2
8 | {
9 | public string prop1 { get; set; }
10 | public string prop2 { get; set; }
11 | public string prop3 { get; set; }
12 | public string prop4 { get; set; }
13 | }
14 |
15 | public class MyColumnMapper : AsyncPoco.IMapper
16 | {
17 | public TableInfo GetTableInfo(Type t)
18 | {
19 | var ti = TableInfo.FromPoco(t);
20 |
21 | if (t == typeof(Poco2))
22 | {
23 | ti.TableName = "petapoco";
24 | ti.PrimaryKey = "id";
25 | }
26 |
27 | return ti;
28 | }
29 | public ColumnInfo GetColumnInfo(System.Reflection.PropertyInfo pi)
30 | {
31 | var ci = ColumnInfo.FromProperty(pi);
32 | if (ci == null)
33 | return null;
34 |
35 | if (pi.DeclaringType == typeof(Poco2))
36 | {
37 | switch (pi.Name)
38 | {
39 | case "prop1":
40 | // Leave this property as is
41 | break;
42 |
43 | case "prop2":
44 | // Rename this column
45 | ci.ColumnName = "remapped2";
46 | break;
47 |
48 | case "prop3":
49 | // Mark this as a result column
50 | ci.ResultColumn = true;
51 | break;
52 |
53 | case "prop4":
54 | // Ignore this property
55 | return null;
56 | }
57 | }
58 |
59 | // Do default property mapping
60 | return ci;
61 | }
62 |
63 |
64 | public Func