در این آموزش به سراغ Connectionstring پویا در .NET Core رفتیم و بررسی جامع و کوتاهی برای این موضوع انجام دادیم.در این مقاله به برای خواندن رشته/کلیدهای اتصال از فایل appsettings.json مراحل زیر را دنبال کنید.
در مرحله اول رشته ی اتصال خود را در فایل appsettings.json قرار دهید.
در ASP.NET Core، API پیکربندی روشی برای یک برنامه بر اساس یک لیست از جفت های نام-مقدار که میتواند در زمان اجرا از چندین منبع خوانده شود، در نظر گرفته است. لطفا به یاد داشته باشید که کتابخانه های کلاس بطور پیش فرض appsettings.json ندارند. راه حل ساده است — به جفت های کلید-مقدار appsettings.json در پروژه ی خود از طریق قانون تزریق وابستگی در ASP.NET Core دسترسی پیدا کنید.
کد زیر را در فایل Startup.cs بنویسید.
public IConfigurationRoot Configuration { get; set; } public static string ConnectionString { get; private set; } public Startup(IHostingEnvironment env) { Configuration = new ConfigurationBuilder().SetBasePath(env.ContentRootPath).AddJsonFile("appSettings.json").Build(); }
پیکربندی I (IConfiguration) سه ویژگی خاص دارد:
- IConfigurationRoot برای گرهی ریشه استفاده میشود. میتواند یک بارگیری دوباره را، راه اندازی کند.
- IConfigurationSection یک بخش از مقادیر پیکربندی را نشان میدهد. متدهای GetSection و GetChildren یک IConfigurationSection را برمیگردانند.
- از IConfigurationRot هنگام بارگذاری مجدد پیکربندی یا برای دسترسی به هر یک از ارائه دهنده ها استفاده کنید.
Connectionstring پویا
در متد Configure از کلاس Startup.cs، خط زیر را قرار دهید.
ConnectionString = Configuration["ConnectionStrings:DefaultConnection"];
تنظیمات پیکربندی حساس مانند رشته های اتصال تنها باید در خارج از مخزن کنترل نسخه ذخیره شوند (برای مثال – در UserSecrets یا Environment Variables)، اما امیدوارم این ایده را بگیرید.
در کلاس Context این متد را قرار دهید.
در اینجا به سادگی ویژگی کلاس Startup ما با استفاده از Startup(Class).Property که در کلاس Startup.cs تنظیم کردید را فراخوانی کنید.
public static string GetConnectionString() { return Startup.ConnectionString; }
و همین. حالا میتوانید از یک Connectionstring پویا در پروژه ی خود استفاده کنید.
در انتها فایل Startup.cs شما به این شکل خواهد بود:
- SetBasePath()
FileProvider مربوط به ارائه دهندگان مبتنی بر فایل را به یک PhysicalFile Provider با مسیر پایه تنظیم میکند.
- AddJsonFile()
باید پکیج NuGet مربوط به Microsoft.Extensions.Configuration.Json را اضافه کنیم اگر میخواهید متد .AddJsonFile() را فراخوانی کنید.
- ConfigurationBuilder Clas
برای ساخت تنظیمات پیکربندی مبتنی بر کلید/مقدار برای کاربرد در یک برنامه استفاده میشود.
و فایل متنی شما به این شکل خواهد بود.
و با استفاده از متد GetConnectionString() متد کلاس Startup، یعنی ConnectionString، که رشته ی اتصال ما را برمیگرداند را فراخوانی خواهیم کرد.
UseSqlServer یک متد افزودنی در فضای نام Microsoft.Data.Entity است، پس باید آن را به کد خود وارد کنید، به این روش:
using Microsoft.EntityFrameworkCore;
خروجی به صورت زیر خواهد بود
دیدگاهها