* initial net5.0 tweaks; also fix current IDE warnings
* lib updates and fixes
* more cleanup
* fix snafu
* skip locals init
* disable xunit shadow copy in tests
* test records
* explore scenario that currently works re #1571
Due to the way VS test works (by injecting an executable entry point), the performance tests needed to be factored out. I also organized all of our existing tests better along the way.
Actual code changes to Dapper itself are very minor, only formatting and documentation fixes (which we need many more of).
The build.ps1 script is upated to work, but note that <frameworkAssemblies> is not working in .nuspec inside the packages in the new .csproj system. I consider this to be a blocker. Issue is here: https://github.com/NuGet/Home/issues/4853
This eliminates the dual solutions and brings Contrib into the
project.json fold.
- Tests are ported to xUnit though SQLite is disabled on DNX due to
Issue #375 (Interop loads fail in the VS runner and params are busted
regardless).
- Projects are consolidated down to what's currently possible with
project.json.
- Contrib moved to: Dapper.Contrib and Dapper.Tests.Contrib (so tests
appear at the end, no other reason vs. Dapper.Contrib.Tests)
- EF moved to: Dapper.EntityFramework(.StrongName)
- Rainbow moved to: Dapper.Rainbow
- SqlBuilder moved to: Dapper.SqlBuilder
- Packages are removed since it's not current-tooling friendly to keep
them (nor was it using them).
- xUnit implemented in Contrib via abstracts - this allow us to very
quickly add any database provider to the rig in a very concise way.
- Contrib unit tests fixed in various places - they were not
parallel-runner friendly
- Nuspecs removed, since they aren't used anymore (to eliminate
confusion)
- Removed speed tests for libraries that aren't on current versions of
.Net (what would we be comparing?)
- Perf tests moved to Dapper.Tests (consolidation from
Dapper.DNX.Tests), but aren't activated yet (no define)
Table properties that implement Table<T,TId> instead of Table<T> are not recognized during the initialization of the Database<T> class. As a result, these properties remain uninitialized after the call to Database<T>.Init().
// Works fine
public Table<Person> Persons { get; set; }
// Remains 'null' after Init
public Table<Car, Guid> Cars { get; set; }
I kept my hands off Sam's original Code as much as possible, only made
the two major classes partial and added the .Net 4.5 Async other half in
the new project (basically what Dapper NET45 does to Dapper).
"Id" is being removed most places in Rainbow, but not on Table.Insert. I
changed this to make it consistent with SqlCompactTable.Insert and
Table.Update.
No sense in escaping TableName only for update, "from" isn't universally
optional for deletes, First() should be virtual to allow alternatives to
TOP 1
From time to time ID column has types different to int. With this change
you could specify column type if it is different to int. Example:
public Table<MyDb, Guid> Users { get; set; }