گرفتن لیست مخاطبین از یک متد در Entity framework
سلام
من یک متد ایجاد کردم حالا میخوام داخل اون متد کوئری بزنم و برگشت بدم
یکی از روش ها به صورت زیر است
private List<Person> LoadPerson()
{
dbPerson dbp =new dbPerson();
return dbp.tblPerson.Tolist();
}
حالا میخواستم بدونم به از این روش روش دیگه ای هست؟
یعنی نخوام نوع لیست را اسم جدول انتخاب کنیم؟ منظورم این است List<Person>
ممنون
نقل قول: گرفتن لیست مخاطبین از یک متد در Entity framework
بصورت جنریک فکر کنم منظورتون هست؟
نقل قول: گرفتن لیست مخاطبین از یک متد در Entity framework
سوالتون واضح نیست!!
بجای نام مدل یک ویو مدل قرار بدید
نقل قول: گرفتن لیست مخاطبین از یک متد در Entity framework
ببینید میخوام مخاطبین یک جدول را ارسال کنم به فرم در گرید
فکر کنم همون لیست جنریک باید استفاده کنم
ممنون میشم راهنمایی کنید
نقل قول: گرفتن لیست مخاطبین از یک متد در Entity framework
لیستی که در پست اول ساختید یک لیست جنریک از نوع کلاس Person هست و نیاز شما را برطرف میکند
شما باید یک کلاس ریپوزیتوری بسازید Generic Repository
کلاس های Rep جنریک رو من پیشنهاد نمیدم به دلیل اینکه اگر پروژه بسط یافت و بزرگ شد کارایی خودش از ذست میده اونم برای کوئریهای پیچیده و متدهای با پارامترها متفاوت
ولی ساختنش روشهای مختلف داره
مثلا اینکه که ابتدا یک Interface میسازیم با یک سری متد و یک کلاس پیاده سازی کننده که میتونه یک کلاس abstract هم باشه
interface IService<T>
{
List<T> GetList();
}
public class GenericService<T, TC> :
IService<T> where T : class where TC : DbContext, new()
{
public TC Context { get; set; } = new TC();
public List<T> GetList()
{
IQueryable<T> query = Context.Set<T>();
return query.ToList();
}
}
کافیه این اینترفیس رو وهله سازی کنیم از نوع کلاسGenericService
هم میتونید دستی اینکار بکنید و هم تحول ioc کانتینرهای مورد دلخواه خودتون مثل Unity یا Structuremapو غیره
بصورت دستی وهله سازی میکنم:
یک کلاس یا فرم دارم :
public class Test
{
private IService<ApplicationUser> _user;
public void GetList()
{
_user = new GenericService<ApplicationUser, ApplicationDbContext>();
_user.GetList();
}
}
این یک مثال ساده بود
ولی توی این لینک میتونید بهتر یاد بگیرید
https://cpratt.co/truly-generic-repository/