PDA

View Full Version : سوال: مشکل نمایش نام افراد در لیست باکس با EF و معماری 3 لایه



haamidd
جمعه 10 مهر 1394, 03:14 صبح
با سلام و عرض ادب، من در برنامه ی تک لایه میتونم بصورت زیر اطلاعات رو فراخوانی کنم و در لیست باکس نمایش بدم...


DatabaseContext oDatabaseContext = new DatabaseContext();
oDatabaseContext.Persons.Load();
lstCountries.ValueMember = "Id";
lstCountries.DisplayMember = "FullName";
lstCountries.DataSource = oDatabaseContext.Countries.Local;


اما همین رو در معماری 3 لایه نمیتونم! یعنی نمیدونم چجوری اطلاعات رو فراخوانی کنم و چجوری به لایه های پایین تر پاس بدم و در لایه UI اون رو نمایش بدم، ممنون میشم راهنمایی کنید.




با تشکر

Felony
جمعه 10 مهر 1394, 20:25 عصر
بهتره یه تابع داشته باشید که لیست کشور ها رو براتون برگردونه :

public List<Countries> GetCountries()
{
using(var dbContext = new DatabaseContext())
{
return dbContext.Countries.ToList();
}
}

haamidd
شنبه 11 مهر 1394, 09:11 صبح
ابتدا خیلی ممنون بابت باسخگویی : )

خب تونستم کارمو راه بندازم، فقط من مراحلی که طی کردم رو پایین میارم و شما اگر پیشنهادی دارین بگین تا بهتر بتونم انجام بدم، ممنون.

DAL


public List<Person> SelectAll()
{
using (var dbContext = new DataBaseContext())
{
return dbContext.Persons.ToList();
}
}



BLL


public object SelectAll()
{
return new DAL.Person().SelectAll();
}



UI


private void btnShow_Click(object sender, EventArgs e)
{
lstPeople.DataSource = new BLL.Person().SelectAll();
lstPeople.ValueMember = "Id";
lstPeople.DisplayMember = "FullName";
}




به نظر خودم لایه BLL نباید اینطوری که من نوشتم باشه : / من خواستم نوع برگشتی متد داخل لایه BLL رو هم list<person> کنم که ابتدا بتونم بریزمش تو یک لیست دیگه که اگر ادم بخواد بتونه یه تغییراتی توش بده ولی نشد و اررور زیر رو داد

Cannot implicitly convert type 'List<DAL.Person>' to 'List<BLL.Person>'






من تازه شروع به یادگیری EF کردم