PDA

View Full Version : استفاده از نتیجه یک پرس و جو در پرس و جوی دیگر | LINQ



hadimtn
چهارشنبه 21 بهمن 1394, 16:51 عصر
سلام...
استفاده از نتیجه ی یک پرس و جو در پرس و جوی دیگر به چه شکل انجام می شود؟!
برای مثال پرس و جوی زیر یک ستون از جدول را شامل می شود؛

var DateFactorQuery = (from f in db.SaledTables
where f.RegDate == D_dateTimePickerX1.SelectedDateInDateTime
select f.FactorNumber).OrderBy(f => f).ToList();
نتیجه ی پرس و جوی فوق در پرس و جوی زیر استفاده می شود (به جای #########)

var FactorDetailQuery = (from f in db.FactorTables
where f.FactorNumber == // ###########
select f).OrderBy(f => f.FactorNumber).ToList();
---------------------------------------------------
تا اونجایی که تو سوالات مشابه گیرم اومد این بود که باید پرس و جوی اول رو توی یک DataTable یا DataSet بریزیم و بعد پرس و جوی دوم رو با استفاده از اون انجام بدیم ! اما چه جوری؟! :متفکر:

Mahmoud.Afrad
چهارشنبه 21 بهمن 1394, 20:27 عصر
اگر رابطه ایجاد کرده باشی میتونی از طریق پراپرتی مناسب از همان شئ جزئیات رو دریافت کنی

var detailFactorQuery =
from header in db.SaledTables
from detail in header.FactorTables
where header.RegDate == D_dateTimePickerX1.SelectedDateInDateTime
orderby detail.FactorNumber
select detail;

hadimtn
جمعه 23 بهمن 1394, 16:49 عصر
بسیار عالی ...
ممنون ...
.
رابطه ایجاد نکرده بودم، ایجاد کردم و جواب گرفتم ! بدین شکل تغییر دادم؛



var detailFactorQuery =
(from ft in db.FactorTables
from st in ft.SaledTables
where st.RegDate == D_dateTimePickerX1.SelectedDateInDateTime
orderby st.FactorNumber
select new
{
st.FactorTable.FactorNumber,
st.FactorTable.CustomerID,
st.FactorTable.SumProfit,
st.FactorTable.OffFactor,
st.FactorTable.Taxation,
st.FactorTable.TotalAmount,
st.FactorTable.Paid,
st.FactorTable.Seller
});


یه سوال؛
این ارتباطی که ایجاد کردم فقط تو خواندن اطلاعات کاربرد داره؟!

139007

الان اگه از جدول FactorTables، یه فاکتور رو حذف کنم، جزئیات اون فاکتور که شامل نام کالا، نشان، قیمت خرید و فروش و ... می باشد از جدول SaledTables حذف خواهند شد؟!

Mahmoud.Afrad
جمعه 23 بهمن 1394, 19:50 عصر
یه سوال؛
این ارتباطی که ایجاد کردم فقط تو خواندن اطلاعات کاربرد داره؟!

139007

الان اگه از جدول FactorTables، یه فاکتور رو حذف کنم، جزئیات اون فاکتور که شامل نام کالا، نشان، قیمت خرید و فروش و ... می باشد از جدول SaledTables حذف خواهند شد؟!
برای خواندن اطلاعات، برای آپدیت، (در اینجا که دارید از Linq استفاده میکنید برای درج کردن ، برای حذف(مثلا یک قلم از یک فاکتور)) میتونید استفاده کنید. کافیه فاکتور را از جدول FactorTable دریافت کنید و به پراپرتی SaledTables از همون شئ ،حذف، اضافه و ... داشته باشید.

منطقا وقتی از جدول فاکتور حذف میکنید باید اقلامش هم به طور خودکار حذف بشن. باید رابطه ای که ایجاد کردید رو به صورتی که در لینک زیر آموزش داده تنظیم کنید.
https://www.mssqltips.com/sqlservertip/2365/sql-server-foreign-key-update-and-delete-rules
سپس یک بار موجودیت های مدل رو آپدیت کنید.