Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
610 changes: 339 additions & 271 deletions src/EFCore.Jet/Migrations/JetMigrationsSqlGenerator.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public class JetCreateDatabaseOperation : MigrationOperation
/// <summary>
/// The name of the database.
/// </summary>
public virtual string? Name { get; set; } = null!;
public virtual string Name { get; set; } = null!;
public virtual string? Password { get; [param: CanBeNull] set; }
}
}
14 changes: 13 additions & 1 deletion src/EFCore.Jet/Scaffolding/Internal/JetDatabaseModelFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using EntityFrameworkCore.Jet.Internal;
using JetBrains.Annotations;
Expand All @@ -21,6 +20,7 @@
using EntityFrameworkCore.Jet.Utilities;
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.Reflection;

namespace EntityFrameworkCore.Jet.Scaffolding.Internal
{
Expand Down Expand Up @@ -500,11 +500,22 @@ private void GetIndexes(DbConnection connection, IReadOnlyList<DatabaseTable> ta
continue;
}

string? filter = null;
if (!nullable)
{
filter = "DISALLOW NULL";
}

if (ignoresNulls)
{
filter = "IGNORE NULLS";
}
var index = new DatabaseIndex
{
Table = table,
Name = indexName,
IsUnique = isUnique,
Filter = filter
};

_logger.IndexFound(indexName!, tableName!, index.IsUnique);
Expand Down Expand Up @@ -535,6 +546,7 @@ private void GetIndexes(DbConnection connection, IReadOnlyList<DatabaseTable> ta

case DatabaseIndex index:
index.Columns.Add(column);
index.IsDescending.Add(descending);
break;
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/EFCore.Jet/Storage/Internal/JetDatabaseCreator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ private IReadOnlyList<MigrationCommand> CreateCreateOperations()
{
new JetCreateDatabaseOperation
{
Name = dataSource,
Name = dataSource!,
Password = databasePassword
}
});
Expand Down
19 changes: 19 additions & 0 deletions test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_odbc_x86.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8251,6 +8251,7 @@ EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_optiona
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_primary_key_composite_with_name
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_primary_key_int
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_primary_key_string
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_primary_key_with_name
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_required_primitive_collection_to_existing_table
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_required_primitive_collection_with_custom_converter_and_custom_default_value_to_existing_table
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_required_primitive_collection_with_custom_default_value_sql_to_existing_table
Expand All @@ -8265,13 +8266,28 @@ EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_check
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_add_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_add_identity
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_change_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_change_default
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_change_type
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_make_required
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_make_required_with_composite_index
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_make_required_with_index
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_make_required_with_null_data
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_remove_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_remove_identity
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_computed_column_add_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_index_change_sort_order
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_table_add_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_table_add_comment_non_default_schema
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_table_change_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_table_remove_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Convert_json_entities_to_regular_owned
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Convert_regular_owned_entities_to_json
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Convert_string_column_to_a_json_column_containing_required_reference
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_index
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_index_descending
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_index_descending_mixed
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_schema
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_schema_dbo_is_ignored
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_table
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_table_no_key
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_table_with_comments
Expand All @@ -8286,12 +8302,15 @@ EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.DeleteDataO
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.DeleteDataOperation_simple_key
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_check_constraint
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_column
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_column_primary_key
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_foreign_key
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_index
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_json_columns_from_existing_table
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_primary_key_int
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_primary_key_string
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_table
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_unique_constraint
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.InsertDataOperation
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Rename_column
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Rename_json_column
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.UpdateDataOperation_composite_key
Expand Down
19 changes: 19 additions & 0 deletions test/EFCore.Jet.FunctionalTests/GreenTests/ace_2010_oledb_x86.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8323,6 +8323,7 @@ EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_optiona
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_primary_key_composite_with_name
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_primary_key_int
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_primary_key_string
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_primary_key_with_name
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_required_primitive_collection_to_existing_table
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_required_primitive_collection_with_custom_converter_and_custom_default_value_to_existing_table
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Add_required_primitive_collection_with_custom_default_value_sql_to_existing_table
Expand All @@ -8337,13 +8338,28 @@ EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_check
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_add_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_add_identity
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_change_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_change_default
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_change_type
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_make_required
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_make_required_with_composite_index
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_make_required_with_index
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_make_required_with_null_data
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_remove_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_column_remove_identity
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_computed_column_add_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_index_change_sort_order
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_table_add_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_table_add_comment_non_default_schema
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_table_change_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Alter_table_remove_comment
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Convert_json_entities_to_regular_owned
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Convert_regular_owned_entities_to_json
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Convert_string_column_to_a_json_column_containing_required_reference
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_index
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_index_descending
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_index_descending_mixed
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_schema
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_schema_dbo_is_ignored
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_table
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_table_no_key
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Create_table_with_comments
Expand All @@ -8358,12 +8374,15 @@ EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.DeleteDataO
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.DeleteDataOperation_simple_key
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_check_constraint
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_column
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_column_primary_key
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_foreign_key
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_index
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_json_columns_from_existing_table
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_primary_key_int
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_primary_key_string
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_table
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Drop_unique_constraint
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.InsertDataOperation
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Rename_column
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.Rename_json_column
EntityFrameworkCore.Jet.FunctionalTests.Migrations.MigrationsJetTest.UpdateDataOperation_composite_key
Expand Down
Loading