PDA

View Full Version : مبتدی: مشکل در نمایش نتیجه کوئری LINQ در DataGridView



پارسا کیانبخت
جمعه 03 تیر 1390, 00:46 صبح
سلام به همه ی دوستان.

من تازه کار با LINQ و EntityFramework رو شروع کردم و به یه مشکل برخوردم. من در دیتابیسم دوتا به این شکل دارم :

http://up.iranblog.com/images/uqaiw44zp8q6enoszkrj.png

در لایه ی Business برای گرفتن لیست تمام مشتری ها از یه متد نوشتم :

public List<Customer> GetList()
{
var query = from customer in DataAccess.DataContext.GetDataEntities().Customer. Include("CustomerType")
select customer;

return query.ToList();
}

در لایه ی UI هم برای نمایش این اطلاعات در DataGridView از این کد :

List<Customer> customerList = new CustomerManager().GetList();
GridView.DataSource = customerList;

اما مشکل اینه که مقدار کلید خارجی رو نشون نمیده. خروجی رو ببینید :

http://up.iranblog.com/images/hcb1tjvrgq4b4zfmd52x.png


دوستان چه راه حلی پیشنهاد میکنن؟

Mohsen_Fotouhi
جمعه 03 تیر 1390, 12:04 عصر
لطفاً شما سورس برنامتونو بذارید

پارسا کیانبخت
جمعه 03 تیر 1390, 12:43 عصر
دوست عزیز فکر نکنم کدهای دیگه ی برنامه ربطی به مشکل داشته باشه، حالا من سورس کلاس های مرتبط رو کامل میذارم.

کلاس DataContext در لایه ی DataAccess :

Singleton Design Pattern

namespace DataAccess
{
public static class DataContext
{
internal static class Nested
{
internal static RestaurantEntities dataEntities;

static Nested()
{
dataEntities = new RestaurantEntities();
}
}

public static RestaurantEntities GetDataEntities()
{
try
{
return Nested.dataEntities;
}
catch (Exception e)
{

throw;
}
}
}
}


کلاس CustomerManager در لایه ی Business :

namespace Business
{
public class CustomerManager
{
public List<Customer> GetList()
{
var query = from customer in DataAccess.DataContext.GetDataEntities().Customer. Include("CustomerType")
select customer;

return query.ToList();
}
}
}

و فرم EditCustomer :

public partial class FormCustomerEdit : Form
{
public FormCustomerEdit()
{
InitializeComponent();
}

private void FormCustomerEdit_Load(object sender, EventArgs e)
{
List<Customer> customerList = new CustomerManager().GetList();
GridView.DataSource = customerList;
}
}

پارسا کیانبخت
جمعه 03 تیر 1390, 18:32 عصر
دوستان مشکل رو پیدا و حل کردم...