You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<Description>Useful tool if you are changing the schema of your database's schema outside of EF Core' migrations, say by using SQL change scripts. See readme file on github.</Description>
??thrownewInvalidOperationException("Unable to create an 'DesignTimeServicesBuilder' instance. Are you using a supported EntityFrameworkCore version?");
Copy file name to clipboardExpand all lines: README.md
+19-9Lines changed: 19 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# EfCore.SchemaCompare
2
2
3
-
If you are changing the schema of your database's schema outside of EF Core' migrations, say by using SQL change scripts, then this library can quickly tell you if the a specific database schema and EF Core's `Model` of the database are in step.
3
+
If you are changing the schema of your database's schema outside of EF Core' migrations, say by using SQL change scripts, then this library can quickly tell you if the a specific database schema and EF Core's `Model` of the database are in step. Versions below 8 this library
4
4
5
5
The first number in the version number of this library defines what version of NET framework it works for. e.g.
6
6
@@ -11,17 +11,26 @@ The EfCore.SchemaCompare library (shortened to EfSchemaCompare in the documentat
11
11
12
12
**TABLE OF CONTENT**
13
13
14
-
1.[What does EfSchemaCompare check?](#what-does-EfSchemaCompare-check)
15
-
2.[List of limitations](#List-of-limitations)
16
-
3.[Introduction to how EfSchemaCompare works](#Introduction-to-how-EfSchemaCompare-works)
17
-
4.[How to use EfSchemaCompare](#How-to-use-EfSchemaCompare)
14
+
1.[What database providers does it support](#what-database-providers-does-it-support)
15
+
2.[What does EfSchemaCompare check?](#what-does-EfSchemaCompare-check)
16
+
3.[List of limitations](#List-of-limitations)
17
+
4.[Introduction to how EfSchemaCompare works](#Introduction-to-how-EfSchemaCompare-works)
18
+
5.[How to use EfSchemaCompare](#How-to-use-EfSchemaCompare)
18
19
5.[Different parameters to the `CompareEfWithDb` method](#different-parameters-to-the-compareefwithdb-method)
19
-
5.[Understanding the error messages](#Understanding-the-error-messages)
20
-
6.[How to suppress certain error messages](#How-to-suppress-certain-error-messages)
**NOTE:** I use the term *entity class* for classes mapped to the database by EF Core.
24
25
26
+
## What database providers does it support
27
+
28
+
- Version 8 now compares all EF Core database providers that can be [be scaffolded](https://learn.microsoft.com/en-us/ef/core/managing-schemas/scaffolding/). However some database providers may show incorrect match errors, because some database providers don't follow the SqlServer style, e.g. CosmosDB
29
+
- Versions below 8 support:
30
+
- SqlServer
31
+
- Sqlite
32
+
- Npgsql.EntityFrameworkCore.PostgreSQL
33
+
25
34
## What does EfSchemaCompare check?
26
35
27
36
### Stage 1 - checks on EF Core side
@@ -55,7 +64,8 @@ The EfCore.SchemaCompare library (shortened to EfSchemaCompare in the documentat
55
64
- The EF Core's scaffolder doesn't read in any index on the foreign key (the scaffolder assumes EF Core will do that by default). That means I can't check that there is an index on a foreign key.
56
65
- Cannot correctly check Table-per-Type or Table-per-Class classes because EF Core doesn't currently hold that data. This is tracked by [Ef Core #19811](https://github.com/dotnet/efcore/issues/19811).
57
66
- Cannot compare database tables/columns using InvariantCultureIgnoreCase. That is a EF Core 5+ limitation.
58
-
- At the moment this library only supports SQL Server, Sqlite and PostgresSql.
67
+
- EfCore.SchemaCompare versions below 8 only support SQL Server, Sqlite and PostgresSql, but version 8 supports all EF Core database providers that can be be scaffolded. However some database providers may show incorrect match errors, because some database providers don't follow the SqlServer style, e.g. CosmosDB
68
+
- Version 8 doesn't handle EF Core 8's [Value objects](https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew#value-objects-using-complex-types).
59
69
60
70
The following are things I haven't bothered to check.
0 commit comments