View Full Version : سوال: بدست آوردن لیستی از رکوردهای یک جدول با یک شرط خاص
hastiam
یک شنبه 07 خرداد 1391, 15:34 عصر
سلام
من دو تا جدول دارم (جدول کالاها و جدول کالاهای انبار) و می خوام لیستی از کالاهایی رو داشته باشم که ID آن در جدول کالاهای انبار وجود نداشته باشه.(با توجه به اینکه در جدول کالاهای انبار، Id انبار و Id کالا ذخیره می شوند) برای این کار باید از چه دستوری (با روش Linq و یا Entityframwork) استفاده کنم؟
ممنون میشم اگه راهنمایی کنید.
Sajjad.Aghapour
دوشنبه 08 خرداد 1391, 12:46 عصر
var result = table1.Where(t => table2.All(t2 => t.ID != t2.ID));
hastiam
سه شنبه 09 خرداد 1391, 09:49 صبح
var result = table1.Where(t => table2.All(t2 => t.ID != t2.ID));
ممنونم از پاسخگوییتون، من از این دستور استفاده کردم اما در حین اجرا error زیر رو میده :
Unable to create a constant value of type
راه حل دیگه ای نیست؟:خجالت:
Sajjad.Aghapour
سه شنبه 09 خرداد 1391, 13:07 عصر
چرا. زیاد میشه از این کارها کرد. این Errorی هم که شما دریافت کردید باید دید به چه صورت دارید در موجودیت ها و Query هاتون عمل میکنید. میتونید به روش های زیر هم عمل کنید:
var result = context.Table1.Where(a => !context.Table2.Any(b => a.ID == b.ID));
var result = context.Table1.Where(a => context.Table2.Where(b=> b.ID == a.ID).FirstOrDefault() == null);
hastiam
چهارشنبه 10 خرداد 1391, 09:16 صبح
این Errorی هم که شما دریافت کردید باید دید به چه صورت دارید در موجودیت ها و Query هاتون عمل میکنید.
دستوری که در بالا نوشتید رو به صورت زیر نوشتم :
List<Goods> list = (context.Goods.Where(t => context.WarehouseGoods.All(t2 => t.GoodsID != t2.GoodsID))).ToList();
از دستورات دیگه ای که نوشتید هم استفاده کردم اما دقیقا همین error رو میده.
GoodsID کلید اصلی در جدول Goods و کلید خارجی در جدول WarehouseGoods است.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.