рдореИрдВ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреБрдЫ рдЯреЗрдмрд▓ рдореМрдЬреВрдж рд╣реИ, рддреЛ рд╕рднреА рдЯреЗрдмрд▓ рдирд╛рдо рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ?
рдХрд╕реНрдЯрдо рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CreateCommand() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ?
рд╣рд╛рдБ SHOW TABLES;
рдЬреИрд╕реА рдХрд╕реНрдЯрдо рдХреНрд╡реЗрд░реА рдХрд╛рдо рдХрд░реЗрдЧреАред рдХреГрдкрдпрд╛ рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЛ рдЖрдЧреЗ рдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдкреВрдЫреЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдореБрджреНрджреЗ рдирд╣реАрдВ рд╣реИрдВред
рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЕрдкрдирд╛ рдкреНрд░рд╢реНрди рд╡рд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░ рд▓реЗрдВрдЧреЗ, рддреЛ @Flihor рдореИрдВ рдЖрдкрдХреЛ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдХреБрдЫ рдирдореВрдирд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЙрддреНрддрд░ рджреВрдВрдЧрд╛ред рдХреГрдкрдпрд╛ pomelo-entityframeworkcore-mysql
рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрд╣ рдПрдХ MySQL рдФрд░ EF Core рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╢реНрди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рдХрд░реАрдм рд╣реИ)ред
рдУрд╣ рдУрд╣, рд╢рд╛рдпрдж рдореИрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдкреНрд░рд╢реНрди рд╕реАрдорд╛ рд╣реИред - рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╢реНрди ...
(рдореИрдВ рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖рдХ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реВрдВрдЧрд╛)
рдУрд╣ рдУрд╣, рд╢рд╛рдпрдж рдореИрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдкреНрд░рд╢реНрди рд╕реАрдорд╛ рд╣реИред - рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╢реНрди ...
@Flihor рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдирдореВрдирд╛ рдХреЛрдб рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
```рд╕реА#
рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
System.Collections.Generic рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
System.Diagnostics рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
Microsoft.EntityFrameworkCore рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
Microsoft.Extensions.Logging рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
Pomelo.EntityFrameworkCore.MySql.Infrastructure рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
рдиреЗрдорд╕реНрдкреЗрд╕ рдЗрд╢реНрдпреВрдХрдВрд╕реЛрд▓рдЯреЗрдореНрдкрд▓реЗрдЯ
{
рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ рдЖрдЗрд╕рдХреНрд░реАрдо
{
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ int IceCreamId { рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ; рд╕реЗрдЯ; }
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо {рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ; рд╕реЗрдЯ; }
}
public class Context : DbContext
{
public DbSet<IceCream> IceCreams { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.UseMySql(
"server=127.0.0.1;port=3306;user=root;password=;database=Issue1279",
b => b.ServerVersion("8.0.21-mysql")
.CharSetBehavior(CharSetBehavior.NeverAppend))
.UseLoggerFactory(
LoggerFactory.Create(
b => b.AddConsole()
.AddFilter(level => level >= LogLevel.Information)))
.EnableSensitiveDataLogging()
.EnableDetailedErrors();
}
}
internal static class Program
{
private static void Main()
{
using var context = new Context();
context.Database.EnsureDeleted();
context.Database.EnsureCreated();
var tableNames = GetTableNames(context);
Trace.Assert(tableNames.Contains("IceCreams"));
}
private static List<string> GetTableNames(DbContext context)
{
// EF Core will close the connection automatically for us, when we ensure, that it is EF Core itself that is
// responsible for opening the database connection. We can ensure that by calling `OpenConnection()` first.
context.Database.OpenConnection();
var connection = context.Database.GetDbConnection();
using var command = connection.CreateCommand();
command.CommandText = @"select `TABLE_NAME`
INFORMATION_SCHEMA
ред TABLES
рдЬрд╣рд╛рдВ TABLE_SCHEMA
= рдбреЗрдЯрд╛рдмреЗрд╕ ();";
var tableNames = new List<string>();
using var reader = command.ExecuteReader();
while (reader.Read())
{
tableNames.Add((string) reader["TABLE_NAME"]);
}
return tableNames;
}
}
}
```
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@Flihor рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдирдореВрдирд╛ рдХреЛрдб рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
```рд╕реА#
рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
System.Collections.Generic рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
System.Diagnostics рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
Microsoft.EntityFrameworkCore рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
Microsoft.Extensions.Logging рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
Pomelo.EntityFrameworkCore.MySql.Infrastructure рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
рдиреЗрдорд╕реНрдкреЗрд╕ рдЗрд╢реНрдпреВрдХрдВрд╕реЛрд▓рдЯреЗрдореНрдкрд▓реЗрдЯ
{
рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ рдЖрдЗрд╕рдХреНрд░реАрдо
{
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ int IceCreamId { рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ; рд╕реЗрдЯ; }
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо {рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ; рд╕реЗрдЯ; }
}
INFORMATION_SCHEMA
редTABLES
рдЬрд╣рд╛рдВ
TABLE_SCHEMA
= рдбреЗрдЯрд╛рдмреЗрд╕ ();";}
```