PDA

View Full Version : سوال: تبدیل کد کوئری sql به LINQ



sayanpro
جمعه 03 آذر 1396, 22:33 عصر
سلام دوستان عزیز.
وقت بخیر.
یک کوئری دارم که خودم نتونستم کد LINQ یا Lambda بنویسم :ناراحت::ناراحت::ناراحت:
ممنون می شوم راهنمایی کنید.


DECLARE @myHID BIGINT;
SET @myHID = 1;


WITH tblChild AS
(
SELECT *
FROM wbs.WBS w WHERE w.ParentId = @myHID
UNION ALL
SELECT w2.* FROM wbs.WBS w2 JOIN tblChild ON w2.ParentId = tblChild.hID
)
SELECT
tblChild.hID , Unit.ID, w3.wbsName + ' * ' + tblChild.wbsName as structure , tblChild.FK_WbsBaseStructure_hID , tblChild.parentID , unitNumber , unitTitle , FK_UsageItem_ID, usageTitle , nominalArea
FROM tblChild
inner join unit.Unit on tblChild.hID = Unit.FK_WBS_hID
inner join unit.UsageItem on Unit.FK_UsageItem_ID = UsageItem.ID
left join wbs.WBS w3 on tblChild.parentID = w3.hID

parvizwpf
شنبه 04 آذر 1396, 21:04 عصر
در کوئریهای برگشتی مثل with شما میبایست تیکه سلکت داخل ویت رو بنویسید سپس بر روی دیتای اون کوئری بیرون ویت رو بنویسید:
برای مثال یونیون :
var result = entity.TblSayacOkumalari
.Select(x => new
{
Date = x.date,
TotalUsage = x.total_usage_T1,
UsageType = "T1"
})
.Union(entity.TblSayacOkumalari.Select(x => new
{
Date = x.date,
TotalUsage = x.total_usage_T2,
UsageType = "T2"
}));

برای مثال جوین چند گانه :
var result = from a in Context.DGApprovedLink
join h in Context.DGHost on a.HostID equals h.ID
join c in Context.DGConfig on a.ResponseCode equals c.SubType
where c.Type == "HTTP Status"
select new {
a.ID,
a.HostID,
h.URL,
a.SourceURL,
a.TargetURL,
c.Value,
a.ExtFlag };

sayanpro
جمعه 22 دی 1396, 19:17 عصر
سلام دوست عزیز. من در این مورد بسیار مبتدی هستم، اگه می شود مثالی که توضیح دادید را بر روی کوئری که در سوال مطرح کردم، بیان کنید، خیلی ممنون می شوم.


در کوئریهای برگشتی مثل with شما میبایست تیکه سلکت داخل ویت رو بنویسید سپس بر روی دیتای اون کوئری بیرون ویت رو بنویسید:
برای مثال یونیون :
var result = entity.TblSayacOkumalari
.Select(x => new
{
Date = x.date,
TotalUsage = x.total_usage_T1,
UsageType = "T1"
})
.Union(entity.TblSayacOkumalari.Select(x => new
{
Date = x.date,
TotalUsage = x.total_usage_T2,
UsageType = "T2"
}));

برای مثال جوین چند گانه :
var result = from a in Context.DGApprovedLink
join h in Context.DGHost on a.HostID equals h.ID
join c in Context.DGConfig on a.ResponseCode equals c.SubType
where c.Type == "HTTP Status"
select new {
a.ID,
a.HostID,
h.URL,
a.SourceURL,
a.TargetURL,
c.Value,
a.ExtFlag };