powered by simpleCommunicator - 2.0.33     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / core 2.2 как запустить произвольный sql
7 сообщений из 7, страница 1 из 1
core 2.2 как запустить произвольный sql
    #39978276
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги!
Есть приложение на .net core 2.2 & ef core 2.2 & sql server
Появилась необходимость получать данные из произвольного sql (и желательно из stored procedure тоже)
гугл не помогает. примеры только для 3.1.
подскажите как такое можно сделать для 2.2
...
Рейтинг: 0 / 0
core 2.2 как запустить произвольный sql
    #39978278
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гугл говорит - FromSql
...
Рейтинг: 0 / 0
core 2.2 как запустить произвольный sql
    #39978287
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Threading.Tasks;

namespace JMDbContext.DBContext
{
    public class DbContextFactory : IDbContextFactory
    {
        IServiceProvider _serviceProvider;

        public DbContextFactory(IServiceProvider serviceProvider)
        {
            _serviceProvider = serviceProvider;
        }

        public async Task DbContext(Func<JMDbContext, Task> func)
        {
            using (var scope = _serviceProvider.CreateScope())
            {
                using (var context = scope.ServiceProvider.GetRequiredService<JMDbContext>())
                {
                    await func(context);
                }
            }
        }
    }

    public interface IDbContextFactory
    {
        Task DbContext(Func<JMDbContext, Task> func);
    }
}



это пример рабочего кода из core 3.1, приблизительно его мне надо в 2.2 реализовать, но с вариациями, в которых нужно запускать sql, sp и function.
в context.Database

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
using System;
using System.Threading;
using Microsoft.AspNetCore.Hosting;
using JMDbContext.DBContext;
using Microsoft.Extensions.Logging;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;

namespace JM.Metric
{
    public class MetricSQL
    {
        readonly IHostingEnvironment _env;
        readonly IDbContextFactory _context;
        readonly ILogger<MetricSQL> _logger;

        public MetricSQL(IHostingEnvironment env, IDbContextFactory context, ILogger<MetricSQL> logger)
        {
            _env = env;
            _logger = logger;
            _context = context;
            Host = System.Net.Dns.GetHostName();
        }


        private async void GetCount(object o)
        {

            _context.DbContext(async (context) =>
              {
                  try
                  {
                     
                     var conn = context.Database.GetDbConnection();  
                     var cmd = conn.CreateCommand();
                     cmd.CommandText = "select count(distinct s.phone ) from uInfo (nolock) ui inner join [dbo].Starts (nolock) s on ui.guid = s.guid where ui.Start= 1;";
                      conn.Open();
                      var res = (int)cmd.ExecuteScalar();
                            .....
                      return;
                  }
                  catch (Exception ex)
                  {
                      _logger.LogError($"Request: {error.ErrorTrace}. Error: {error.ErrorMessage}");
                  }
              });
        }
    }
}
...
Рейтинг: 0 / 0
core 2.2 как запустить произвольный sql
    #39978292
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegisteredUser
это пример рабочего кода из core 3.1, приблизительно его мне надо в 2.2 реализовать, но с вариациями, в которых нужно запускать sql, sp и function.
думаешь, из примера какой-то ниоткуда не вызываемой async void (!!!) функции можно понять, что ты хочешь?

Тут причем вообще EF и FromSQL, если в твоем примере вызов CreateCommand?
...
Рейтинг: 0 / 0
core 2.2 как запустить произвольный sql
    #39978333
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это extension метод из Microsoft.EntityFrameworkCore.Relational пакета, и Microsoft.EntityFrameworkCore namespace'а
...
Рейтинг: 0 / 0
core 2.2 как запустить произвольный sql
    #39978534
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegisteredUser,

Пробовали гуглить-то? :)

https://docs.microsoft.com/ru-ru/ef/core/querying/raw-sql
...
Рейтинг: 0 / 0
core 2.2 как запустить произвольный sql
    #39978813
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Помогло.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / core 2.2 как запустить произвольный sql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]