对于这一切还相当陌生,所以如果我做了任何愚蠢的事情,我深表歉意。
我正在尝试实现一个与我设置的本地 SQL Server Express 数据库进行通信的工作项目。
我将连接字符串存储在我的AppSettings.Json
如下所示
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"ConnectionStrings": {
"DBConnection": "Server=localhost\\SQLEXPRESS;Database=TwitterTesting;Trusted_Connection=True;"
}
}
然后我有一个DBContext.cs
存储我的数据库结构的文件。目前我只有一张表“推文”。
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WorkerService1.Entities;
namespace WorkerService1
{
public class DataContext : DbContext
{
public DataContext(DbContextOptions options) : base(options)
{
}
public DbSet<tweets> tweets { get; set; }
}
}
Tweets.cs
仅具有列结构。
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
namespace WorkerService1
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddDbContextPool<DataContext>(
options => options.UseSqlServer(hostContext.Configuration.GetConnectionString("DBConnection"))
);
services.AddHostedService<Worker>();
});
}
}
上面是我的program.cs
我试图在其中添加实现的文件DBContext
,但我在编译时收到以下错误:
System.AggregateException:“无法构造某些服务(验证服务描述符时出错”ServiceType:Microsoft.Extensions.Hosting.IHostedService Lifetime:Singleton ImplementType:WorkerService1.Worker”:无法使用范围服务“WorkerService1.DataContext”单例“Microsoft.Extensions.Hosting.IHostedService”。)
我从网上看的理解是这与依赖注入有关,但我真的很困惑我需要做什么。
任何帮助将不胜感激! :)