با عرض سلاممن وبسایتم رو تو یه مسیری پابلیش کردم الان وقتی میخواهم connectionString رو دستکاری بکنم هیچ جا ندارمش
چونکه من از آخرین ورژن core استفاده میکنم و فایلهای پروژه رو نگاه کردم میبینم که connection string در program.cs ایجاد شده
سوال: چطور میتونم connection string رو طوری قرار بدم که بتوان بعدا اوون رو مدیریت کرد، یعنی با نصب روی سرور مشتری بتونه با در دسترس داشتن فایلی مثل appsetting.js نام دیتابیس و غیره رو تغییرش بده
لازم به توضیحه توی program.cs این خط کد رو نوشتم:
builder.Configuration.GetConnectionString("EWPCon");
و به appsettings.js هم کانکشن استرینگ رو منتقل کردم:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"EWPCon": "Data Source=DESKTOP-UAPISRF;Initial Catalog=EWP_DataBase;Integrated Security=true;TrustServerCertificate=True;"
}}
الان روی این خط توی program.cs ارور میده هنگام اجرا:
var app = builder.Build();
اینهم خطا:
'Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: EWP_WebApp.Data.Repositories.IGovernorateRepository Lifetime: Scoped ImplementationType:
سلام دوست عزیز
به طور کلی برای اینکه بتونید connection string رو از appsetting بخونید براتون یک مثال ساده میزنم و برید تست کنید
فرض کنید یک پروژه داریم
و داخل appsetting این بلوک رو تعریف کردیم
"ConnectionStrings": {
"CodeJooyanConnectionString": "Server=.;Database=CodeJooyan_DB;Trusted_Connection=True;TrustServerCertificate=True;Integrated Security=True;"
},و داخل program.cs باید به شکل زیر استفاده بشه
services.AddDbContext<نام کانتکست شما>(options =>
{
options.UseSqlServer(Configuration.GetConnectionString("MohammadZamaniConnection"));
});
امیدوارم براتون مفید بوده باشه