Повторное использование кода из моего приложения ASP. NET Core MVC в консольном приложении: как установить соединение с базой данных - PullRequest
0 голосов
/ 07 февраля 2020

Я сделал приложение ASP. NET Core MVC, работающее с Интернетом. Это приложение для чтения и записи в базу данных.

Теперь я хочу создать консольное приложение, которое использует ту же базу данных (сервер, строку подключения, ...), также в. NET Core.

Как я могу повторно использовать код контекста базы данных для доступа к той же базе данных, что и первое приложение?

На данный момент мой Program.cs является основой c. Я хотел бы вставить сюда код для подготовки соединения с базой данных ...

РЕДАКТИРОВАТЬ

Моя модель контекста данных:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using MVFxml;
using MVFxml.Models;
using MVFxml.Models.ViewModels;
//using MVFxml.Controllers;
using MVFxml.Infrastructure;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.ComponentModel.DataAnnotations;

namespace MVFxml.Models
{
    public class fmDataContext : DbContext
    {
        private DbContextOptions<fmDataContext> opt { get; set; }

        public fmDataContext(DbContextOptions<fmDataContext> options)
            : base(options)
        {
            opt = options;
        }

        public MyStructure RetrieveFromDb(long id = -1)
        {
           … code here …
        }

        ...other fuctions here...
}

1 Ответ

0 голосов
/ 02 апреля 2020

Чтобы решить эту проблему, я написал подпрограмму Main для моего консольного приложения следующим образом:

        static void Main(string[] args)
        {
            …
            var optionsBuilder = new DbContextOptionsBuilder<fmDataContext>();

            optionsBuilder
                .UseSqlServer(connectionString, providerOptions => providerOptions.CommandTimeout(60));

            using (fmDataContext context = new fmDataContext(optionsBuilder.Options))
            {
                MyStructure data = context.RetrieveFromDb();

                … // here I do whatever I want with the data
            }

И мне не пришлось менять класс fmDataContext, показанный выше ...

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