在C#控制台应用程序中访问dbContext

我试图弄清楚这一点,但是我被困住了。


我有一个带有Service / Repo / Api / Angular层的Net Core 2应用程序-但是现在我想“添加”控制台应用程序并访问我已经建立的所有好东西。我似乎陷入了混乱的静态对象和DI和null参数。无论如何,这是我的代码的简化版本。


namespace SimpleExample

{


    class Program

    {


        private static ApplicationDbContext _appDbContext;


        public Program(ApplicationDbContext appDbContext)

        {

            _appDbContext = appDbContext;

        }


        static void Main(string[] args)

        {

            var instance = new Program();  // this doesn't work!

            var instance = new Program(_appDbContext);  // neither does this!

            instance.GetData();

        }



        private void GetData()

        {

            Console.WriteLine("Let's read some data! Press a key to continue.");

            Console.ReadLine();


            var data = "my data";

            var result = GetId(data);

        }



        private string GetId(string original)

        {

            var data = _appDbContext.Data

                .Where(x => x.Name == original.Trim)

                .FirstOrDefault();


            return data;


        }

    }


}

我正在经典

“非静态字段需要对象引用”

错误。然后,从这里进行研究,我将其更改为静态,然后一切都变为空。

不只是我要注入的DbContext。我也在尝试注入

私人ManagerService _managerService;

但出现相同的错误。

更新

如果我尝试

私有静态ApplicationDbContext _appDbContext = new ApplicationDbContext();

如下面几次建议,那么我得到了错误

没有给出与“ ApplicationDbContext.ApplicationDbContext(DbContextOptions)”所需的形式参数“ options”相对应的参数


呼啦一阵风
浏览 289回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP