[英]System.InvalidOperationException: No connection string named 'SALESDBEntities' could be found in the application config file
[英]InvalidOperationException: No connection string named 'PayMyRentEntities' could be found in the application config file
致力於將 .NET Framework 遷移到 .NET core 6。我正在嘗試運行無法從 appsettings.json 文件讀取連接字符串的應用程序。 我也展示了 appsettings.json 文件。 請讓我知道我需要做什么。 舊應用程序從 web.config 文件中讀取。
上下文文件
public partial class PayMyRentEntities : DbContext
{
public PayMyRentEntities()
: base("name=PayMyRentEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Category> Categories { get; set; }
public virtual DbSet<Hospital> Hospitals { get; set; }
public virtual DbSet<LookupType> LookupTypes { get; set; }
public virtual DbSet<LookupValue> LookupValues { get; set; }
}
應用設置.json
{
"WebApiPublishUrl": "http://localhost:61330/",
"ConnectionStrings": {
"PayMyRentEntities": "metadata=res://*/PMR.csdl|res://*/PMR.ssdl|res://*/PMR.msl;provider=System.Data.SqlClient;provider connection string=\u0022data source=ACDSK3;initial catalog=Phnix;user id=hyd3;password=hyd3;integrated security=false;MultipleActiveResultSets=True;App=EntityFramework\u0022"
}
}
運行時錯誤:
由於您使用的是 .net core 6,因此是時候了解依賴注入了。
在您的啟動中注冊數據庫
builder.services.AddPooledDbContextFactory<PayMyRentEntities>((serviceProvider, builder) => { var config = serviceProvider.GetService<IConfiguration>();. _ = builder.UseSqlServer(config.GetConnectionString("PayMyRentEntities"));EnableServiceProviderCaching(false), }: poolSize: 32)
然后獲取您班級的注冊選項
public PayMyRentEntities(DbContextOptions options)
: base(options) {}
public sealed class SomeDotnetClass{
private readonly PayMyRentEntities _context;
public SomeDotnetClass(PayMyRentEntities context){
_context = context;
}
}
builder.services.AddScoped<SomeDotnetClass>()
通過這種方式,您可以確保您的數據庫連接將由 .net 管理,並且每個 API 端點都會獲得自己唯一的連接,直到端點完成其工作。 並且代碼的可讀性也得以保持。
1)程序.cs
builder.Services.AddDbContext<PayMyRentEntities >(options => { options.UseSqlServer(builder.Configuration.GetConnectionString("DefualtConnection")); });
2)數據庫上下文:
public class PayMyRentEntities : DbContext
{
public PayMyRentEntities (DbContextOptions<PayMyRentEntities > options) : base(options)
{
}
}
3) 應用設置.json
"ConnectionStrings": {
"DefualtConnection": "Data Source=.; Initial Catalog = nameDatabase; Integrated Security=True; user id=hyd3;password=hyd3"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.