Microsoft.Data.Entity не найден в EntityFrameworkCore.Relational - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь использовать GetDbConnection () в объекте базы данных в EntityframeworkCore. После ссылки на все компоненты (абстракции, дизайн, прокси, реляционные и sqlserver) EF Core у меня нет доступа к методу GetDbConnection (). Я предполагаю, что это метод расширения.

Pls. Обратите внимание, что я использую EF Core 2.1.4.

Моя настоящая задача - выполнить raw sql с несколькими JOIN.

Пожалуйста, ознакомьтесь с руководством о том, как получить метод, или посоветуйте, как использовать необработанный SQL.

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

Мне пришлось использовать старый добрый SqlClient.

var connectionString = _configuration.GetConnectionString("ConnectionString");
        List<string> queryColumns = null;   
        DataTable dataRetrieved = new DataTable();
        using (SqlConnection con = new SqlConnection(connectionString))
        {
            con.Open();
            SqlCommand cmd = new SqlCommand(sql ,con);
            SqlDataReader reader = cmd.ExecuteReader();
            queryColumns = Enumerable.Range(0,reader.FieldCount).Select(reader.GetName).ToList();

            dataRetrieved.Load(reader); 
        }
0 голосов
/ 07 октября 2019

Вы можете использовать этот универсальный метод

public Task<List<TEntity>> ExecuteSqlCommand<TEntity>(string command, params object[] parameters)
        where TEntity : class
    {
        IQueryable<TEntity> q = null;

        using (var db = new YourDataContext(new DbContextOptions<YourDataContext>()))
        {

            if (parameters != null)
                q = db.Query<TEntity>().FromSql(command, parameters);

            else
                q = db.Query<TEntity>().FromSql(command);

            return Task.FromResult(q.ToList());
        }
    }

Имейте в виду, что TEntity - это ваш класс выходной модели, который должен быть определен первым

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...