Commit Graph

200 Commits (e7539ef509626cae4e323b7f01a5caa92b154e90)

Author SHA1 Message Date
Christopher Jolly 3f5c1b6005 Make sure a DateTime in a constant has a DateTime Type Mapping 2 years ago
Christopher Jolly 429c67ca3a Some skip...take optimization and fix using multiple take after a skip 3 years ago
Christopher Jolly cbf7daca08 Update tests for Skip...Take 3 years ago
Christopher Jolly d7268307bc Fix generating a custom OleDbException for the tests 3 years ago
Christopher Jolly fd57f4a3bd Rename some extension methods so that it doesn't interfere with other providers (namely sql server) 3 years ago
Christopher Jolly 84e40f5085 Fix some string resources 3 years ago
Christopher Jolly d668fe7f16 Update tests 3 years ago
Christopher Jolly 6230db2803 Merge branch 'master' of https://github.com/bubibubi/EntityFrameworkCore.Jet 3 years ago
Christopher Jolly 61b277d11c Update dependencies and some test fixes 3 years ago
Cédric Luthi 83c29e4c43 Introduce a new typed JetConnectionStringBuilder
This makes it easier to use than the extensions (EntityFrameworkCore.Jet.Data.DbConnectionStringBuilderExtensions) with Get/Set methods.

With the new `JetConnectionStringBuilder` class:

```csharp
var csb = new JetConnectionStringBuilder(DataAccessProviderType.OleDb)
{
    Provider = "Microsoft.ACE.OLEDB.12.0",
    DataSource = @"C:\myFolder\myAccessFile.accdb",
    DatabasePassword = "hunter2",
};
var connectionString = csb.ConnectionString;
```

Without the new `JetConnectionStringBuilder` class:

```csharp
var csb = new OleDbConnectionStringBuilder();
csb.SetProvider("Microsoft.ACE.OLEDB.12.0");
csb.SetDataSource(@"C:\myFolder\myAccessFile.accdb");
csb.SetDatabasePassword("hunter2");
var connectionString = csb.ConnectionString;
```
3 years ago
Christopher Jolly 12aca42198 Add option to use the normal short text type when mapping against an unbounded System.String instead of long text/memo. Jet has limitations when using memo (e.g. joins are not supported) 3 years ago
Christopher Jolly acc3fd5223 Revert "Set the precision to be maximum of 28 (Jet limit)."
This reverts commit a1904bf113.
3 years ago
Christopher Jolly a1904bf113 Set the precision to be maximum of 28 (Jet limit).
When using property.HasConversion<decimal>() the default for EF Core is with precision 38 and scale 17 which is passed Jet's limit
3 years ago
Christopher Jolly 7de8811773 Some tests adjustments 3 years ago
Christopher Jolly 9489bc4564 Jet seems to output bytes only as an array. so a single byte becomes a byte[1] array. Return the first byte of that array in this instance 3 years ago
Christopher Jolly 89515bb01a Fix some tests to catch DbException and its derived types. Thus catching OdbcException or OleDbException depending on which provider the tests were using 3 years ago
Christopher Jolly b23483ce45 Test fixes for escaping wild chars 3 years ago
Christopher Jolly ca05f94f6d Adjust some SQL results for the modification to the order by boolean 3 years ago
Christopher Jolly aa6b5afb9f Fix some more tests 3 years ago
Christopher Jolly 87aa0dbe93 Fix incorrect check for whether ordering expression is boolean typeexpression if it is a boolean type. 3 years ago
Christopher Jolly 03579d380c Add a JetGuidTypeMapping class. We need to override the template for the SQL literal. Jet uses the format with th curly braces at the beginning and end. Default (and same as sql server) is the format without curly braces 3 years ago
Christopher Jolly 8540a7cc17 Add extra Gear to the Reports collection of an Officer. We had adjusted a null foreing key to make it work and this makes the expected data match the actual 3 years ago
Christopher Jolly 17ca1f6992 Fix tests related to TimeSpan 3 years ago
Christopher Jolly e01686d4b5 MID doesn't allow a null value for the length parameter. Add a IIF wrapper around it if that argument is marked as nullable.
Added here instead of stringmethodtranslator as we need the nullability optimizations on the sqlfunctionexpression. When wrapped in a caseexpression we get some different optimizations. Produces the correct result on the test case but is different to SQL Server. This way we keep it closer to SQL Server
3 years ago
Christopher Jolly d594e7cf25 More test fixes 3 years ago
Christopher Jolly b002c884c7 Gears of War tests now run.
Also updated the baseline SQL
3 years ago
Christopher Jolly 3e376ff106 Fix byte array stuff 3 years ago
Christopher Jolly ccef0d4f49 Add Math functions to translate Floor and Ceiling 3 years ago
Christopher Jolly ba1a514a62 Fix more tests 3 years ago
Christopher Jolly a48c20c45c In a raw sql string the base delimiters and normalized to " and not `. 3 years ago
Christopher Jolly 3764d5ab27 Declaration is the same for both Odbc and OleDb 3 years ago
Christopher Jolly cef810999d Fix failed merge 3 years ago
Christopher Jolly 5ea5fdc446
Merge branch 'master' into ef7 3 years ago
Christopher Jolly 51037ec385 Use GenGUID function for DefaultValueSql instead of the undefined newid 3 years ago
Christopher Jolly ae722d9033 Ignore DateOnly and TimeOnly field in Gears Of War. No support yet 3 years ago
Christopher Jolly 88ab948f12 Gears of War has DateOnly/TimeOnly fields. Currently ignore 3 years ago
Christopher Jolly d9494d6a66 Update tests 3 years ago
Christopher Jolly 5c4677bd8f update tests 3 years ago
Christopher Jolly 4219015cc0 raw string literals not supported in net6 3 years ago
Christopher Jolly e14b48db47 Update tests 3 years ago
Christopher Jolly 710376d50f Enable nullable on src projects (not tests)
Fix Math and String translator to add missing translations and make it similar to how sql server generates
Update lots of tests
3 years ago
Christopher Jolly 0f2b0c3447 Update to EF 7 GA version 3 years ago
Christopher Jolly b80c0c8128 Update tests 3 years ago
Christopher Jolly 0e7d080ebd Initial ef7 update 3 years ago
Christopher Jolly ca1b158a72 Update tests 3 years ago
Christopher Jolly 75e381b52c Update tests 3 years ago
Christopher Jolly cf4bbf213f Update tests 3 years ago
Christopher Jolly 8135a01750 Update Northwind SQL: Use a better format for the dates. When using it with the / separator, whether it is day then month or month then day is interpreted based on your locale. Using the #yyyy-mm-dd# format is interpreted the same way more consistently 3 years ago
Christopher Jolly 4554aad38e Update the translator for the string methods to add a couple more: Substring, IndexOf,FirstOrDefault,LastOrDefault 3 years ago
Christopher Jolly ab7a424ef4 Fix up Design time services to work properly. Add-Migration command in VS will work now 3 years ago
Christopher Jolly 81f6cbb254 revert to use our stringtypemapping to generate the sql literal. Some regex depends on using this format to pick the filename from the connection string 3 years ago
Christopher Jolly d100231ce9 [Tests]: Update tests 3 years ago
Christopher Jolly d51935d04a [Fix][Test]: Exception can be either OleDb or Odbc 3 years ago
Christopher Jolly 2f2de12dd5 enable and fix tests 3 years ago
Christopher Jolly d42cf1e346 Fix tests: Use helper method to create connection - will use database named for the test - gives each test a unique name so doesnt interfere with others at the same time. The rest of the tests already use it, these couple were just missed 3 years ago
Christopher Jolly ed8f109855 update tests to build 3 years ago
Christopher Jolly 1f35ab88fd merge fixes from upstream 3 years ago
Christopher Jolly de09de2b5f update dependencies 3 years ago
Laurents Meyer 6a8ccd27de
Fix transactions issues (#129)
* Fix active transaction support and disposed handling.

* Add transaction baseline tests.

* Fix transaction tests.
4 years ago
Laurents Meyer 7214d3ca9f Improve test infrastructure. 4 years ago
Laurents Meyer 120a47746a
[PORT] Improve `counter` type handling and add missing `counter` usage cases (#121)
* Improve counter type handling. (#112)

* Add missing counter usage cases.

* Adjust tests.
4 years ago
Laurents Meyer 1eb7ec7793
Fix EXIST handling in regards to line breaks. (#117) (#118) 4 years ago
Laurents Meyer e9d4aef876
[PORT] Do not create Index-Operations with the same name as ForeignKey constraints (#115)
* In contrast to SQL Standard, MS Access will create an index together with a the FK constrains (#114)

According to https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/constraint-clause-microsoft-access-sql
this can be deactivated, however creating an index with the same name as an FK still results in an runtime error, therefor the index creation operation is skipped

Co-authored-by: Michael Steinecke <m.p.steinecke@gmail.com>

* Update to 5.0 and cleanup code and comments.

Co-authored-by: Michael Steinecke <6099045+MichaelSteinecke@users.noreply.github.com>
Co-authored-by: Michael Steinecke <m.p.steinecke@gmail.com>
4 years ago
Christopher Jolly b1fa143d4d
Update to .Net 5 (#99)
* update to net 5

* Add DecimalTypeKey to the logger

* fix build

* fix sdk version for script

* Update dependencies.

* Fix version and dependencies.

* Readd necessary code paths, fix smaller upgrade issues, cleanup code.

* Fix project files.

* Fix tests.

* Readd removed JetQueryTranslationPostprocessorFactory injection.
Fix date/time related millisecond (double) support.

* Fix value generation.

Co-authored-by: Laurents Meyer <laucomm@gmail.com>
4 years ago
Laurents Meyer 12614cd7a1
Ensure columns of relationships (FK -> PK/AK) are applied in the original order, when scaffolding. (#104) 5 years ago
Laurents Meyer 3595734d47
Fix remaining EFCore.Jet.Data tests (#92)
* Refactor dual table handling.

* Fix remaining EFCore.Jet.Data tests.
5 years ago
Laurents Meyer b749447fd0
Add support for PASSWORD clause in EFCore.Jet specific CREATE DATABASE statement (#91)
* Add support for PASSWORD clause in EFCore.Jet specific CREATE DATABASE statement.

* Add negative test.
5 years ago
Laurents Meyer 45dcfbe0dd
When creating databases, automatically use the latest database version that is supported by the current file extension. (#90) 5 years ago
Laurents Meyer 56bf71b17f
Fix schema and rename related issues and tests (#89)
* Fix schema and rename related issues and tests.

* Adjust rename syntax for better standard conformity.
5 years ago
Laurents Meyer 45e7d8a365
Fix CREATE/DROP DATABASE related issues. (#88) 5 years ago
Laurents Meyer 00178eb0cd
Fix DateTime fractions logic and make milliseconds support opt-in (#86)
* Ensure deterministic test ordering.

* Fix DateTime factions logic.

* Make milliseconds support opt-in.

* Fix logic and add tests.

* Fix DateTime related OLE DB parameter configuration.
5 years ago
Laurents Meyer 54b4af5759
Fix DateTime expressions for HasDefaultValue() and add support for fractions of a second (#85)
* Fix and improve test runs.

* Fix DateTime expressions for HasDefaultValue() and add support for fractions of a second.
Refactor test infrastructure.
5 years ago
xoniuqe b0d53d30ce
Fix DEFAULT clause for HasDefaultValueSql() (#81)
* Removed parenthesis from column default values (addresses issue #18)

* Fixed issue where the file handles were not being released after the database connection was closed.

* reverted accidentally changed file to upstream version

* Fixed issue where the file handles were not being released after the database connection was closed.

* reverted accidentally changed file to upstream version

* Add accompanying tests for PR #81.

Co-authored-by: Collin Kostichuk <collin.kostichuk@genivar.com>
Co-authored-by: Collin Kostichuk <collin.kostichuk@wsp.com>
Co-authored-by: Tobias Arens <arens@jam-software.de>
Co-authored-by: Laurents Meyer <laucomm@gmail.com>
5 years ago
Laurents Meyer f094f3658c
Fix data and test infrastructure and scaffolding (#82)
* Fix local references.

* Optimize, fix and simplify JetDataReader.

* Only scaffold objects if tables are available.

* Fix test infrastructure.

* Ignore Development.props in root folder.
5 years ago
Floris Verhoeven 23b8257fc8
Trim called without arguments throws index out of range (#77)
* Check arguments before accessing in jet string method translator

* Change expected result on to lower and to upper query tests

* Change expected result on trim query tests

* Remove original fix and fix condition chaining in trim clause generation

Co-authored-by: Floris Verhoeven <florisverhoeven@outlook.com>
5 years ago
Laurents Meyer 2b44bac7ba Cleanup solution. 5 years ago
Laurents Meyer 64ebb61c0a
Rename System.Data.Jet to EntityFrameworkCore.Jet.Data (#75)
* Rename System.Data.Jet and System.Data.Jet.Test projects.

* Rename System.Data.Jet and System.Data.Jet.Test namespaces.
5 years ago
Laurents Meyer c661926684
Improve project and CI (#68)
* Update .NET SDK.
Improve CI.

* Simplify dependency management.

* Add new versioning mechanism.

* Implement CI package publishing.

* Add matrix for multiple ACE architectures.

* Fix xUnit warnings.

* Cleanup and enable SourceLink.

* Manually install .NET SDK to specify architecture.
Extend matrix to test for x64/x86 and ODBC/OLE DB.
5 years ago
Laurents Meyer 864be46354
Reimplement schema retrieval and scaffolding (#59)
* Reimplement schema retrieval.

* Reimplement scaffolder. Some Jet specific options have not been implemented yet.
5 years ago
Lau 9f0b60baee Fix tests (especially from `SimpleQueryJetTest`). 6 years ago
Lau db47437539 Provide `TOP` and `SKIP` support for ODBC commands and improve algorithm and use cases. 6 years ago
Lau 521362b213 Update dependency versions. 6 years ago
Lau 1f42ec1f0a Implement automatic driver (ODBC) and provider (OLE DB) inference and detection. 6 years ago
Lau 3f19b269b4 Rename DataAccessType to DataAccessProviderType. 6 years ago
Lau 2a6a3b67ba Update baseline assertions to support ODBC parameter placeholders. 6 years ago
Lau 41579e74c9 Cleanup all remaining ODBC and OLE DB references. 6 years ago
Lau fedfc295d6 Remove "dbo" schema from most tests. 6 years ago
Lau 130617fd75 Temporary add test to replicate AccessViolationException in x64 ACE provider. 6 years ago
Lau 11d56f868c Implement workaround for "To many tables" error:
ODBC Error Code: -1311 [HY001]
[Microsoft][ODBC Microsoft Access Driver] Cannot open any more tables.
If too many commands get executed in short succession, ACE/Jet can run out of table handles.
This can happen despite proper disposal of OdbcCommand and OdbcDataReader objects.
Waiting for a couple of milliseconds will give ACE/Jet enough time to catch up.
6 years ago
Lau d502f6e3c6 Replace SQL related square brackets with backticks in all code and script files. 6 years ago
Lau 4d1f86bb0e Implement parallel support for ODBC and OLE DB. 6 years ago
Lau a71fcc1b69 Update solution and build/infrastructure files. 6 years ago
Lau 74dd677b00 Upgrade EFCore.Jet.FunctionalTests. 6 years ago
Lau 5de0755b60 Upgrade System.Data.Jet.Test. 6 years ago
Lau 2eef0b952f Remove obsolete design tests. 6 years ago
Lau afd9d852cb Remove obsolete tests. 6 years ago
Lau a59af50105 Upgrade EFCore.Jet.IntegrationTests. 6 years ago
Lau 66b71242bb Upgrade and fix EFCore.Jet.Integration.Test to 3.1.x. 6 years ago
Lau 583f990b8c Upgrade and fix System.Data.Jet and System.Data.Jet.Test to 3.1.x. 6 years ago
Lau 0c2fbad73c Remove obsolete files. 6 years ago