Pomelo.entityframeworkcore.mysql: Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС ΠΈΠΌΠ΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ† с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Pomelo.EntityFrameworkCore.MySql?

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 24 Π΄Π΅ΠΊ. 2020  Β·  4ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: PomeloFoundation/Pomelo.EntityFrameworkCore.MySql

Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, сущСствуСт Π»ΠΈ какая-Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС ΠΈΠΌΠ΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†?

ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CreateCommand () для выполнСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ запроса?

closed-question type-question

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Ой, ΠΌΠΎΠΆΠ΅Ρ‚, я Π½Π΅ ΠΌΠΎΠ³Ρƒ, Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° количСство вопросов ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ стСка. - Блишком ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ вопроса ...

@Flithor Π’ этом случаС Π²ΠΎΡ‚ ΠΎΠ±Π΅Ρ‰Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

`` Π‘ #
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ БистСму;
using System.Collections.Generic;
с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ System.Diagnostics;
using Microsoft.EntityFrameworkCore;
с использованиСм Microsoft.Extensions.Logging;
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Pomelo.EntityFrameworkCore.MySql.Infrastructure;

пространство ΠΈΠΌΠ΅Π½ IssueConsoleTemplate
{
ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ класс IceCream
{
public 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 = database (); ";

        var tableNames = new List<string>();

        using var reader = command.ExecuteReader();
        while (reader.Read())
        {
            tableNames.Add((string) reader["TABLE_NAME"]);
        }

        return tableNames;
    }
}

}
`` ''

ВсС 4 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π”Π°, ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ запрос, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ SHOW TABLES; Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π·Π°Π΄Π°ΠΉΡ‚Π΅ этот вопрос Π² Stack Overflow для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠΌΠΎΡ‰ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для этой Ρ†Π΅Π»ΠΈ.

@Flithor Π― ΠΎΡ‚Π²Π΅Ρ‡Ρƒ Π²Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΊΠΎΠ΄Π° Π½Π° Stack Overflow, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ размСститС Ρ‚Π°ΠΌ свой вопрос. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Π΅Π³ pomelo-entityframeworkcore-mysql , Ρ‡Ρ‚ΠΎΠ±Ρ‹ я Π±Ρ‹Π» ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ (это вопрос, связанный с MySQL ΠΈ EF Core, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ достаточно Π±Π»ΠΈΠ·ΠΊΠΎ).

Ой, ΠΌΠΎΠΆΠ΅Ρ‚, я Π½Π΅ ΠΌΠΎΠ³Ρƒ, Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° количСство вопросов ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ стСка. - Блишком ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ вопроса ...
(Π― ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ)

Ой, ΠΌΠΎΠΆΠ΅Ρ‚, я Π½Π΅ ΠΌΠΎΠ³Ρƒ, Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° количСство вопросов ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ стСка. - Блишком ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ вопроса ...

@Flithor Π’ этом случаС Π²ΠΎΡ‚ ΠΎΠ±Π΅Ρ‰Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

`` Π‘ #
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ БистСму;
using System.Collections.Generic;
с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ System.Diagnostics;
using Microsoft.EntityFrameworkCore;
с использованиСм Microsoft.Extensions.Logging;
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Pomelo.EntityFrameworkCore.MySql.Infrastructure;

пространство ΠΈΠΌΠ΅Π½ IssueConsoleTemplate
{
ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ класс IceCream
{
public 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 = database (); ";

        var tableNames = new List<string>();

        using var reader = command.ExecuteReader();
        while (reader.Read())
        {
            tableNames.Add((string) reader["TABLE_NAME"]);
        }

        return tableNames;
    }
}

}
`` ''

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ