PDA

View Full Version : معادل دستور سلکت توی entity



programerinfonet
یک شنبه 10 فروردین 1393, 15:01 عصر
سلام
معادل این 3 سوال توی entity چی میشه ؟
1-
select * from table where id = '1'
و نمایش در دیتاگرید ویو

2- گرفتن آخرین رکورد درج شده توی جدول که آی دیه کوچک تر از 1000 دارد
3- گرفتن تعداد رکوردهای یک جدول

khokhan
یک شنبه 10 فروردین 1393, 15:12 عصر
-


1

select * from table where id = '1'







و نمایش در دیتاگرید ویو


.................................................. ................

var query = from q in db.table.Where(t => t.id == 1)
select q;
dataGridView1.DataSource = query.ToList();

khokhan
یک شنبه 10 فروردین 1393, 15:26 عصر
3- گرفتن تعداد رکوردهای یک جدول

var count = db.table.Count(t => t.MyContainer.ID == '1');

programerinfonet
یک شنبه 10 فروردین 1393, 16:18 عصر
4 - چه طوری مقادیر یک فیلد رو توی یک کمبوباکس نمایش بدم ؟

مهرداد صفا
جمعه 15 فروردین 1393, 17:32 عصر
با سلام.




2- گرفتن آخرین رکورد درج شده توی جدول که آی دیه کوچک تر از 1000 دارد

در حالت عادی در EF و کلا در SQL انتخاب آخرین گزینه مقدور نیست و باید از روشهای غیر مستقیم استفاده کنید. مثلا:
- انتخاب تمام رکوردهای مورد نظر و لود در حافظه با استفاده از متود ToList یا ToArray و بعد استفاده از متود Last:



var db = new ContactsEntities();
dataGridView1.DataSource = new Contacts[] { db.Contacts.Where(contact => contact.ContactID < 1000).ToList().Last() };

چون مستقیما معادلی برای دستور Last در SQL نیست، تمام رکوردها لود و سپس آخرین مورد انتخاب شده.

- معکوس کردن رکوردها و انتخاب اولین مورد:


dataGridView1.DataSource = db.ExecuteStoreQuery<Contacts>("select top 1 * from contacts where ContactID <1000 order by ContactID desc", null);
//or
var x= db.Contacts.Where(c => c.ContactID < 1000).OrderByDescending(c => c.ContactID).First();

- به دست آوردن آخرین شناسه مورد نظر و انتخاب رکورد منطبق با آن:


dataGridView1.DataSource = db.ExecuteStoreQuery<Contacts>("select * from contacts where ContactID=(select max(ContactID) from contacts where ContactID<1000) ", null);
//or
dataGridView1.DataSource = db.Contacts.Where(c => c.ContactID == db.Contacts.Where(c2 => c2.ContactID < 1000).Max(c3 => c3.ContactID));




3- گرفتن تعداد رکوردهای یک جدول



MessageBox.Show(DB.Contacts.Count().ToString());


4 - چه طوری مقادیر یک فیلد رو توی یک کمبوباکس نمایش بدم ؟



comboBox1.DataSource = db.Contacts.Select(c => c.Value);
//or
comboBox1.DataSource = db.Contacts;
comboBox1.DisplayMember = "value";