This forum is not used anymore. Please ask new questions to Stack Overflow: https://stackoverflow.com/questions/tag ... ort=newest (use aspnetboilerplate tag).
By jakeuj
#17332 Current ASP.NET Core template is ASP.NET Core 1.1 NOT Include module zero.

NuGet Package Install MySql.Data.EntityFrameworkCore
2017-05-03_15-35-37.png
MySql.Data.EntityFrameworkCore
2017-05-03_15-35-37.png (140.62 KiB) Viewed 69864 times

(I remove two package about mssql, too.)

Edit MyProject.EntityFrameworkCore.DbContextOptionsConfigurer.cs
2017-05-03_15-36-29.png
DbContextOptionsConfigurer
2017-05-03_15-36-29.png (138.08 KiB) Viewed 69864 times

Code: Select alldbContextOptions.UseMySQL(connectionString);


Edit appsettings.json
2017-05-03_15-37-53.png
Edit appsettings.json
2017-05-03_15-37-53.png (63.33 KiB) Viewed 69864 times

Code: Select all"Default": "Server=localhost; Database=GameDb; userid=root;pwd=;port=3306;sslmode=none;"


Then you can Add-Migration, Update-Database, use Repositories...ETC.

BTW, I got an error if use the project Include module zero.

A discriminator property cannot be set for the entity type 'EditionFeatureSetting' because it is not the root of an inheritance hierarchy.
By ismcagdas
#17944 Hi,

Thank you for your sharing :).

About the exception with module zero, official EFCore library provided by Oracle cannot doesn't automatically do registrations for derived classes.

You can either use https://github.com/PomeloFoundation/Pom ... Core.MySql or you need to define Discriminator column like this
Code: Select allmodelBuilder.Entity<FeatureSetting>(b =>
{
    b.HasDiscriminator<string>("Discriminator")
        .HasValue<FeatureSetting>(nameof(FeatureSetting))
        .HasValue<EditionFeatureSetting>(nameof(EditionFeatureSetting))
        .HasValue<TenantFeatureSetting>(nameof(TenantFeatureSetting));
});


Code: Select allmodelBuilder.Entity<PermissionSetting>(b =>
{
    b.HasDiscriminator<string>("Discriminator")
        .HasValue<PermissionSetting>(nameof(PermissionSetting))
        .HasValue<RolePermissionSetting>(nameof(RolePermissionSetting))
        .HasValue<UserPermissionSetting>(nameof(UserPermissionSetting));
});


Thanks.
By jakeuj
#20195 I override OnModelCreating, then I got an error when Add-Migration.

Error message is below

"Unable to determine the relationship represented by navigation property 'User.DeleterUser' of type 'User'. Either manually configure the relationship, or ignore this property from the model."

P.S. I Include module zero (the current version)

But

Pomelo.EntityFrameworkCore.MySql is work fine.

after abpusertokens table created, then throw exception below.

Code: Select allMySql.Data.MySqlClient.MySqlException: Specified key was too long; max key length is 767 bytes
   at MySql.Data.MySqlClient.MySqlDataReader.ActivateResultSet(ResultSet resultSet)
   at MySql.Data.MySqlClient.MySqlDataReader.<ReadFirstResultSetAsync>d__62.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MySql.Data.MySqlClient.MySqlDataReader.<CreateAsync>d__61.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MySql.Data.MySqlClient.CommandExecutors.TextCommandExecutor.<ExecuteReaderAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MySql.Data.MySqlClient.CommandExecutors.TextCommandExecutor.<ExecuteNonQueryAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
   at Microsoft.EntityFrameworkCore.Storage.Internal.MySqlRelationalCommand.<ExecuteAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.EntityFrameworkCore.Storage.Internal.MySqlRelationalCommand.Execute(IRelationalConnection connection, String executeMethod, IReadOnlyDictionary`2 parameterValues, Boolean closeConnection)
   at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connection)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Abp.Zero.EntityFrameworkCore.AbpZeroDbMigrator`1.CreateOrMigrate(AbpTenantBase tenant, Action`1 seedAction)
   at MyGZ.Migrator.MultiTenantMigrateExecuter.Run(Boolean skipConnVerification) in E:\Users\jakeuj\Desktop\MyGZ\src\MyGZ.Migrator\MultiTenantMigrateExecuter.cs:line 63


I think mysql not support Length: 2000
Value = table.Column<string>(maxLength: 2000, nullable: true)
Code: Select allmigrationBuilder.CreateTable(
                name: "AbpSettings",
                columns: table => new
                {
                    Id = table.Column<long>(nullable: false)
                        .Annotation("MySql:ValueGeneratedOnAdd", true),
                    CreationTime = table.Column<DateTime>(nullable: false),
                    CreatorUserId = table.Column<long>(nullable: true),
                    LastModificationTime = table.Column<DateTime>(nullable: true),
                    LastModifierUserId = table.Column<long>(nullable: true),
                    Name = table.Column<string>(maxLength: 256, nullable: false),
                    TenantId = table.Column<int>(nullable: true),
                    UserId = table.Column<long>(nullable: true),
                    Value = table.Column<string>(maxLength: 2000, nullable: true)
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_AbpSettings", x => x.Id);
                    table.ForeignKey(
                        name: "FK_AbpSettings_AbpUsers_UserId",
                        column: x => x.UserId,
                        principalTable: "AbpUsers",
                        principalColumn: "Id",
                        onDelete: ReferentialAction.Restrict);
                });