ورود

View Full Version : ترکیب نتایج چند کوئری در لینک



bftarane
جمعه 11 خرداد 1397, 11:13 صبح
سلام
من دو تا جدول دارم
148305

148305

کاری که باید انجام بدم اینه، ابتدا از جدول tbl_NewsPosition فیلد Fk_NewsCatId رکوردی که Fk_NewsID به فرض 4 باشه و IsMainPosition هم True باشه رو به دست بیارم، سپس از جدول tbl_cat نام گروهی که آی دی اون برابر با این Fk_NewsCatId هست رو به دست بیارم و سپس نام زیرگروه این گروه رو به دست بیارم.
در واقع یه همچین سلکتی می خوام داشته باشم
var newscatid=Dbcontext.tbl_NewsPosition.where(x => x.Fk_NewsID==4 and IsMainPosition=true).select(x => x.Fk_NewsCatId);

from p in Dbcontext.tbl_cat.where(x => x.Id== newscatid) select new { parentCat = b.CatName};
from ch in Dbcontext.tbl_cat.where(x => x.Fk_ParentId== newscatid) select new { childCat = ch.CatName};



و result ای هم که می خوام بهش برسم اینه
+-----------+----------+
| parentCat | childCat |
+-----------+----------+
| Sport | Footbal |
| | |
+-----------+----------+


لطفا راهنمایی کنید این کوئری در linq و entityframework به چه صورت هست؟

Mahmoud.Afrad
جمعه 11 خرداد 1397, 11:23 صبح
عکسها که تکراری هستند!

اگر کدفرست کار میکنید کد کلاسها رو بزارید.
لینک زیر رو ببینید(متد include )
https://msdn.microsoft.com/en-us/library/jj574232.aspx

bftarane
جمعه 11 خرداد 1397, 13:46 عصر
ببخشید تصویر جدول دوم
148306

نه دیتابیس فرست هست.

ali_md110
جمعه 11 خرداد 1397, 17:17 عصر
var newscatid= Dbcontext.tbl_NewsPosition.where(x => x.Fk_NewsID==4 && IsMainPosition).Include(x => x.tbl_cat).Select(x => new
{
parent = x.tbl_cat.CatName,
child = x.tbl_cat.Childs.Select(s=> s.CatName)
}).ToList();



منظورم از tbl_cat در parent = x.tbl_cat.CatName همون Navigation Property هست از جدول tbl_cat که نمیدونسیتم اسمش توی دیتاکانتکست برنامه شما چی هست خودتون جایگذین کنید

و در ضمن بهتره از یک ویومدل بجای نوع بی نامی که من قرار دادم استفاده کنید
منظورم این قسمت هست


new CustomViewmodel
{
Parent = x.tbl_cat.CatName,
Child = x.tbl_cat.Childs.Select(s=> s.CatName)
{