رادکام
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
</ItemGroup>
کاری که این تکه کد انجام می دهد نصب ابزار Command Line برای Entity
Framework است. رشته اتصال بانک اطلاعاتی (connection string) ما در
فایل جیسون مربوط به تنظیمات ذخیره خواهد شد.
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
حال باید فضای نام Microsoft.Extensions.Configuration را به ابتدای کلاس
خود اضافه کنیم. حال به سراغ متد ConfigureServices می رویم. ابتدا باید یک
متغیر برای migration assembly تعریف کنیم. و ما می خواهیم این متغیر را به
پروژه ای که میزبانی Identity Server را به عهده دارد نسبت دهیم. برای این
کار باید از همین کلاس startup استفاده کنیم و سپس متد GetTypeInfo را
فراخوانی کنیم، که برای این کار نیاز داریم تا فضای نام
System.Reflection را به ابتدای کلاس اضافه کنیم. سپس نیاز هست تا متد
GetName را فراخوانی کنیم تا بتوانیم نام assembly را دریافت نماییم.var migrationAssembly = typeof(Startup).GetTypeInfo().Assembly.GetName().Name;
کار بعدی که باید انجام دهیم، جایگزین کردن پیکربندی های انجام شده برای
نگهداری اطلاعات لازم در حافظه، با متد AddConfigurtionStore است.
بنابراین در کد زیرین ، بخش زیر را حذف می کنیم،.AddInMemoryIdentityResources(Config.GetIdentityResources())
.AddInMemoryClients(Config.GetClients())
و کد زیر را جایگزین می کنیم..AddConfigurationStore(options =>
{
options.ConfigureDbContext = builder => builder.UseSqlServer(Configuration.GetConnectionString("TokenService"),
optionsBuilder => optionsBuilder.MigrationsAssembly(migrationAssembly));
})
این کد این امکان را فراهم می کند تا یک محل ذخیره سازی دائمی برای منابع و
داده ها اضافه کنیم. همچنین نیاز داریم تا ارائه دهنده پایگاه داده را نیز
مشخص کنیم که در اینجا SQL Server است.
همانگونه که در کد فوق می بینید از متد UseSqlServer برای این کار استفاده
کردیم. و همچنین ما نیاز داریم تا رشته اتصال به بانک اطلاعاتی را نیز مشخص
کنیم. برای استفاده از این کتابخانه نیاز هست تا فضای نام
Microsoft.EntityFrameworkCore را به ابتدای کلاس اضافه کنیم. حال به سراغ
ادامه تنظیمات می رویم. برای مشخص کردن متغیر اسمبلی مربوط به مهاجرت از یک
نسخه به نسخه بالاتر از همان متغیری استفاده کردیم که بالاتر تعریف کرده
بودیم. در ادامه نیاز داریم تا متد AddOperationalStore را فراخوانی کنیم.
این کار ما داده های عملیاتی که Identity Server تولید می کند را ذخیره می
کند. که شامل اطلاعاتی مانند موارد مربوط به توافق و توکن های مرجع است.
درست مانند مشخص کردن تامین کننده بانک اطلاعاتی و رشته اتصال برای متد
AddConfigurationStore، برای این متد نیز باید نوع فراهم کننده بانک
اطلاعاتی و رشته اتصال را مشخص نماییم. و همچنین مثل متد قبل متغیر اسمبلی
مربوط به مهاجرت از یک نسخه به نسخه بالاتر را نیز مشخص کنیم. در نهایت کد
زیر را خواهیم داشت:.AddOperationalStore(options =>
{
options.ConfigureDbContext = builder => builder.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
optionsBuilder => optionsBuilder.MigrationsAssembly(migrationAssembly));
})
با این کار ما توانستیم به طور کامل محل ذخیره سازی درون حافظه ای را با
محل ذخیره سازی برای اطلاعات پیکر بندی و دیتای عملیاتی با استفاده از Entity Framework Core جایگزین کنیم .1,309بازدید
دیدگاه کاربران
هنوز دیدگاهی ثبت نشده است.
شما میتوانید درباره این مقاله، دیدگاه خود را ثبت کنید.