فراخوانی متد سید دیتا در .net6

سوال شده توسط: محمد قلی زاده

تاریخ ثبت: ۱۴۰۰/۱۱/۲۶

بازدید: 475

پاسخ: 5

تگ: Asp.net Core


ببخشید من سید دیتا پروژه رو در متد Configure فراخوانی میکردم،حالا که پروژه net6. اپدیت کردم،الان اگه بخوام دوباره سید دیتا رو همینجا اعمال کنم به چه نحوی باید انجام بشه؟

پاسخ ها
user

محمد اشرافی

دقیقا همینجا فراخوانیش کن و اگر به سرویس خاضی احتیاج دارید باید از Service Collection دریافت اش کنید

به این شکل : 

async Task SeedData(IServiceProvider services){
	using var scope = services.CreateScope();
	var serviceProvider = scope.ServiceProvider;
	var dapperContext = serviceProvider.GetRequiredService<DapperContext>();
	...
}

و بعد این متد توی همون program.cs صدا بزنید و builder.services رو بهش بدین

user

محمد قلی زاده

استاد ببخشید ولی به عنوان unuses methodمیشناسه و سید دیتا رو درج نمیکنه

user

محمد اشرافی

خوب متد رو  بعد از اینکه app رو ساختید صداش بزنید

var app = builder.Build();
await SeedData(app.Services);
user

محمد قلی زاده

استاد عکس تابع رو فرستادم،چجوری دوباره صداش بزنم؟
اینطوری نوشته نشده  یک تابع استاتیک هستش که پارامتر هاش رو باید از یک تابع دیگه بگیره

user

محمد اشرافی

خوب ببینید من که بهتون گفتم توی متد SeedData که توی Program.cs میسازی ، یکی یکی سرویس هارو بگیر و بهش پاس بده : 

var app = builder.Build();
await SeedData(app.Services);


async Task SeedData(IServiceProvider services){
	using var scope = services.CreateScope();
	var serviceProvider = scope.ServiceProvider;
	var context= serviceProvider.GetRequiredService<DapperContext>();
	var roleManager= serviceProvider.GetRequiredService<IApplicationRoleManager>();
	var userManager= serviceProvider.GetRequiredService<IApplicationUserManager>();
	
	await DummyData.Initialze(context,userManager,roleManager);
}

{

برای ثبت پاسخ باید خود شوید

محبوب ترین مقالات