เชชเชฐเชฟเชเชฏ
ะ
เช
เชนเซเช เช
เชฎเซ เชเซเชก เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจ เชธเชเชฌเชเชงเชฟเชค เชเซเชเชฒเชพเช เชตเชงเซ เช
เชญเชฟเชเชฎเซ เชชเชฃ เชฐเชเซ เชเชฐเซเช เชเซเช LINQ เชชเซเชฐเชถเซเชจเซ.
เชคเซ เชเชพเชฃเซเชคเซเช เชเซ เชเซ LINQ(เชญเชพเชทเชพ-เชธเชเชเชฒเชฟเชค เชเซเชตเซเชฐเซ) เชกเซเชเชพ เชธเซเชคเซเชฐเซเชคเชจเซ เชเซเชตเซเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชเช เชธเชฐเชณ เช
เชจเซ เช
เชจเซเชเซเชณ เชญเชพเชทเชพ เชเซ.
ะ LINQ เชฅเซ SQL DBMS เชฎเชพเช เชกเซเชเชพ เชเชเซเชธเซเชธ เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชเซเชเชจเซเชฒเซเชเซ เชเซ. เชกเซเชเชพ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เช เชเช เชถเชเซเชคเชฟเชถเชพเชณเซ เชธเชพเชงเชจ เชเซ, เชเซเชฏเชพเช เชเซเชตเซเชฐเซ เชเช เชเซเชทเชฃเชพเชคเซเชฎเช เชญเชพเชทเชพ เชฆเซเชตเชพเชฐเชพ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซ เชชเชเซ เชฐเซเชชเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ. SQL เชชเซเชฐเชถเซเชจเซ เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เช เชจเซ เช เชฎเชฒเซเชเชฐเชฃ เชฎเชพเชเซ เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐ เชชเชฐ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เช เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, DBMS เชฆเซเชตเชพเชฐเชพ เช เชฎเชพเชฐเซ เช เชฐเซเชฅ เชเซ เชเชฎเชเชธ เชเชธเชเซเชฏเซเชเชฒ เชธเชฐเซเชตเชฐ.
เชเซ เชเซ, LINQ เชชเซเชฐเชถเซเชจเซ เชถเซเชฐเซเชทเซเช เชฐเซเชคเซ เชฒเชเซเชฒเชพเชฎเชพเช เชฐเซเชชเชพเชเชคเชฐเชฟเชค เชฅเชคเชพ เชจเชฅเซ SQL เชชเซเชฐเชถเซเชจเซ, เชเซ เชเช เช เชจเซเชญเชตเซ DBA เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจเชจเซ เชคเชฎเชพเชฎ เชเซเชเชเชพเช เชธเชพเชฅเซ เชฒเชเซ เชถเชเซ เชเซ SQL เชชเซเชฐเชถเซเชจเซ:
- เชถเซเชฐเซเชทเซเช เชเซเชกเชพเชฃเซ (เชเซเชกเชพเช) เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซเชจเซ เชซเชฟเชฒเซเชเชฐ เชเชฐเชตเซเช (เชเซเชฏเชพเช เชเซ)
- เชเซเชกเชพเชฃเซ เช เชจเซ เชเซเชฅ เชถเชฐเชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชฃเซ เชเซเชเชเชพเช
- เชฌเชฆเชฒเชตเชพเชจเซ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชเชฎเชพเช เชเชฃเซ เชญเชฟเชจเซเชจเชคเชพ IN เชชเชฐ เช เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชเซะธ เชฎเชพเช เชจเชนเชฟ, <> เชเชพเชฒเซ เช เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชเซ
- เช เชธเซเชฅเชพเชฏเซ เชเซเชทเซเชเชเซ, CTE, เชเซเชทเซเชเช เชเชฒเซ เชฆเซเชตเชพเชฐเชพ เชชเชฐเชฟเชฃเชพเชฎเซเชจเซเช เชฎเชงเซเชฏเชตเชฐเซเชคเซ เชเซเชถเซเชเช
- เชตเชพเชเซเชฏเชจเซ เชเชชเชฏเซเช (เชตเชฟเชเชฒเซเชช) เชธเซเชเชจเซ เช เชจเซ เชเซเชฌเชฒ เชธเชเชเซเชคเซ เชธเชพเชฅเซ เชธเชพเชฅเซ (...)
- เชชเชธเชเชฆเชเซ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฌเชฟเชจเชเชฐเซเชฐเซ เชกเซเชเชพ เชฐเซเชกเชฟเชเชเซเชธเชฅเซ เชเซเชเชเชพเชฐเซ เชฎเซเชณเชตเชตเชพเชจเชพ เชเช เชฎเชพเชงเซเชฏเชฎ เชคเชฐเซเชเซ เช เชจเซเชเซเชฐเชฎเชฟเชค เชฆเซเชถเซเชฏเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ
เชชเชฐเชฟเชฃเชพเชฎเซ เชฎเซเชเซเชฏ เชเชพเชฎเชเซเชฐเซ เช เชตเชฐเซเชงเซ SQL เชชเซเชฐเชถเซเชจเซ เชธเชเชเชฒเชจ เชเชฐเชคเซ เชตเชเชคเซ LINQ เชชเซเชฐเชถเซเชจเซ เชเซ:
- เชเช เชตเชฟเชจเชเชคเซเชฎเชพเช เชธเชฎเชเซเชฐ เชกเซเชเชพ เชธเชฟเชฒเซเชเซเชถเชจ เชฎเชฟเชเซเชจเชฟเชเชฎเชจเซเช เชเชเซเชเชฐเชฃ
- เชเซเชกเชจเชพ เชธเชฎเชพเชจ เชฌเซเชฒเซเชเซเชธเชจเซ เชจเชเชฒ เชเชฐเชตเซ, เชเซ เชเชเชฐเซ เชฌเชนเซเชตเชฟเชง เชฌเชฟเชจเชเชฐเซเชฐเซ เชกเซเชเชพ เชตเชพเชเชเชตเชพ เชคเชฐเชซ เชฆเซเชฐเซ เชเชพเชฏ เชเซ
- เชฌเชนเซ-เชเชเช เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชเชจเชพ เชเซเชฅเซ (เชคเชพเชฐเซเชเชฟเช โเช เชจเซโ เช เชจเซ โเช เชฅเชตเชพโ) - เช เชจเซ ะธ OR, เชเชเชฟเชฒ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชเชฎเชพเช เชธเชเชฏเซเชเชจ, เช เชนเชเซเชเชค เชคเชฐเชซ เชฆเซเชฐเซ เชเชพเชฏ เชเซ เชเซ เชเชชเซเชเชฟเชฎเชพเชเชเชฐ, เชเชฐเซเชฐเซ เชเซเชทเซเชคเซเชฐเซ เชฎเชพเชเซ เชฏเซเชเซเชฏ เชฌเชฟเชจ-เชเซเชฒเชธเซเชเชฐเซเชก เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพเช เชงเชฐเชพเชตเชคเซเช, เชเชเชฐเซ เชเซเชฒเชธเซเชเชฐเซเชก เชเชจเซเชกเซเชเซเชธเชจเซ เชตเชฟเชฐเซเชฆเซเชง เชธเซเชเซเชจ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชเซ (เชเชจเซเชกเซเชเซเชธ เชธเซเชเซเชจ) เชถเชฐเชคเซเชจเชพ เชเซเชฅเซ เชฆเซเชตเชพเชฐเชพ
- เชธเชฌเชเซเชตเซเชฐเซเชเชจเซเช เชเชเชกเชพ เชฎเชพเชณเชเซเช เชชเชพเชฐเซเชธเชฟเชเชเชจเซ เชเซเชฌ เช เชธเชฎเชธเซเชฏเชพเชฐเซเชช เชฌเชจเชพเชตเซ เชเซ เชเชธเชเซเชฏเซเชเชฒ เชจเชฟเชตเซเชฆเชจเซ เช เชจเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเช เชคเชฐเชซเชฅเซ เชเซเชตเซเชฐเซ เชชเซเชฒเชพเชจเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เช เชจเซ DBA
เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจ เชชเชฆเซเชงเชคเชฟเช
เชนเชตเซ เชเชพเชฒเซ เชธเซเชงเชพ เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจ เชชเชฆเซเชงเชคเชฟเช เชชเชฐ เชเชเช.
1) เชตเชงเชพเชฐเชพเชจเซ เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพ
เชฎเซเชเซเชฏ เชชเชธเชเชฆเชเซ เชเซเชทเซเชเชเซ เชชเชฐ เชซเชฟเชฒเซเชเชฐเซเชธเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชตเชพเชจเซเช เชถเซเชฐเซเชทเซเช เชเซ, เชเชพเชฐเชฃ เชเซ เชเชฃเซ เชตเชพเชฐ เชธเชฎเชเซเชฐ เชเซเชตเซเชฐเซ เชเช เช เชฅเชตเชพ เชฌเซ เชฎเซเชเซเชฏ เชเซเชทเซเชเชเซ (เชเชชเซเชฒเชฟเชเซเชถเชจ-เชฒเซเชเซ-เชเชชเชฐเซเชถเชจเซเชธ) เช เชจเซ เชถเชฐเชคเซเชจเชพ เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชธเชฎเซเชน (IsClosed, Canceled, Enabled, Status) เชจเซ เชเชธเชชเชพเชธ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชเชณเชเชพเชฏเซเชฒ เชจเชฎเซเชจเชพเช เชฎเชพเชเซ เชฏเซเชเซเชฏ เชธเซเชเชเชพเชเชเซ เชฌเชจเชพเชตเชตเซเช เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซ.
เช เชเซเชทเซเชคเซเชฐเซ เชชเชธเชเชฆ เชเชฐเชคเซ เชตเชเชคเซ เช เชธเซเชฒเซเชฏเซเชถเชจ เช เชฐเซเชฅเชชเซเชฐเซเชฃ เชฌเชจเซ เชเซ เชเซ เชเซเชตเซเชฐเซ เชชเชฐ เชชเชพเชเชพ เชซเชฐเซเชฒเชพ เชธเซเชเชจเซ เชจเซเชเชงเชชเชพเชคเซเชฐ เชฐเซเชคเซ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชเชฐเซ เชเซ.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เช เชฎเชพเชฐเซ เชชเชพเชธเซ 500000 เช เชฐเชเซเช เชเซ. เชเซ เชเซ, เชคเซเชฏเชพเช เชฎเชพเชคเซเชฐ 2000 เชธเชเซเชฐเชฟเชฏ เช เชฐเชเซเช เชเซ. เชชเชเซ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชชเชธเชเชฆ เชเชฐเซเชฒ เชเชจเซเชกเซเชเซเชธ เชเชชเชฃเชจเซ เชคเซเชจเชพเชฅเซ เชฌเชเชพเชตเชถเซ เชเชจเซเชกเซเชเซเชธ เชธเซเชเซเชจ เชฎเซเชเชพ เชเซเชฌเชฒ เชชเชฐ เช เชจเซ เชคเชฎเชจเซ เชฌเชฟเชจ-เชเซเชฒเชธเซเชเชฐเซเชก เชเชจเซเชกเซเชเซเชธ เชฆเซเชตเชพเชฐเชพ เชเชกเชชเชฅเซ เชกเซเชเชพ เชชเชธเชเชฆ เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเชถเซ.
เชเชชเชฐเชพเชเชค, เชเซเชตเซเชฐเซ เชชเซเชฒเชพเชจ เชชเชพเชฐเซเชธ เชเชฐเชตเชพ เช เชฅเชตเชพ เชธเชฟเชธเซเชเชฎ เชตเซเชฏเซเชจเชพ เชเชเชเชกเชพ เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชธเชเชเซเชคเซ เชฆเซเชตเชพเชฐเชพ เชเชจเซเชกเซเชเซเชธเชจเซ เช เชญเชพเชต เชเชณเชเซ เชถเชเชพเชฏ เชเซ. เชเชฎเชเชธ เชเชธเชเซเชฏเซเชเชฒ เชธเชฐเซเชตเชฐ:
เช เชตเชเชพเชถเซ เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพเชเชจเชพ เช เชชเชตเชพเชฆ เชธเชฟเชตเชพเชฏ, เชคเชฎเชพเชฎ เชตเซเชฏเซ เชกเซเชเชพเชฎเชพเช เชเซเชเชคเชพ เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพเช เชตเชฟเชถเซเชจเซ เชฎเชพเชนเชฟเชคเซ เชถเชพเชฎเซเชฒ เชเซ.
เชเซ เชเซ, เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพเช เช เชจเซ เชเซเชถเซเชเช เช เชเชฃเซเชตเชพเชฐ เชเชฐเชพเชฌ เชฐเซเชคเซ เชฒเชเซเชฒเชพ เชชเชฐเชฟเชฃเชพเชฎเซเชจเซ เชธเชพเชฎเชจเซ เชเชฐเชตเชพเชจเซ เชชเชฆเซเชงเชคเชฟเช เชเซ LINQ เชชเซเชฐเชถเซเชจเซ ะธ SQL เชชเซเชฐเชถเซเชจเซ.
เชเซเชตเชจเชจเซ เชเช เซเชฐ เชชเซเชฐเซเชเซเชเชฟเชธ เชฌเชคเชพเชตเซ เชเซ เชคเซเชฎ, เชตเซเชฏเชตเชธเชพเชฏ เชฎเชพเชเซ เชเซเชเซเชเชธ เชธเชฎเชฏเชฎเชฐเซเชฏเชพเชฆเชพ เชฆเซเชตเชพเชฐเชพ เชตเซเชฏเชตเชธเชพเชฏเชฟเช เชตเชฟเชถเซเชทเชคเชพเชเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเซ เชเชฃเซ เชตเชเชค เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซ. เช เชจเซ เชคเซเชฅเซ, เชญเชพเชฐเซ เชตเชฟเชจเชเชคเซเช เชเชฃเซเชตเชพเชฐ เชเซเชถเซเชเช เชธเชพเชฅเซ เชชเซเชทเซเช เชญเซเชฎเชฟเชฎเชพเช เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชฅเชพเชฏ เชเซ.
เช เชเชเชถเชฟเช เชฐเซเชคเซ เชจเซเชฏเชพเชฏเซ เชเซ, เชเชพเชฐเชฃ เชเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชนเชเชฎเซเชถเชพ เชจเชตเซเชจเชคเชฎ เชกเซเชเชพเชจเซ เชเชฐเซเชฐ เชนเซเชคเซ เชจเชฅเซ เช เชจเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเชจเซเชเชฐเชซเซเชธเชจเซ เชชเซเชฐเชคเชฟเชญเชพเชตเชถเซเชฒเชคเชพเชจเซเช เชธเซเชตเซเชเชพเชฐเซเชฏ เชธเซเชคเชฐ เชเซ.
เช เช เชญเชฟเชเชฎ เชตเซเชฏเชตเชธเชพเชฏเชฟเช เชเชฐเซเชฐเชฟเชฏเชพเชคเซเชจเซ เชนเชฒ เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ, เชชเชฐเชเชคเซ เชเชเชฐเซ เชธเชฎเชธเซเชฏเชพเชเชจเชพ เชเชเซเชฒเซเชฎเชพเช เชตเชฟเชฒเชเชฌ เชเชฐเซเชจเซ เชฎเชพเชนเชฟเชคเซ เชชเซเชฐเชฃเชพเชฒเซเชจเซ เชเชพเชฎเชเซเชฐเซเชจเซ เชเชเชพเชกเซ เชเซ.
เชคเซ เชฏเชพเชฆ เชฐเชพเชเชตเซเช เชชเชฃ เชฏเซเชเซเชฏ เชเซ เชเซ เชเชฎเซเชฐเชตเชพ เชฎเชพเชเซ เชเชฐเซเชฐเซ เชธเซเชเชเชพเชเชเซ เชถเซเชงเชตเชพเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชฎเชพเช, เชธเซเชเชจเซ เชเชฎเชเชธ เชเชธเชเซเชฏเซเชเชฒ เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจ เชเซเชเซเช เชนเซเช เชถเชเซ เชเซ, เชเซเชฎเชพเช เชจเซเชเซเชจเซ เชถเชฐเชคเซเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ:
- เชเซ เชคเซเชฏเชพเช เชชเชนเซเชฒเชพเชฅเซ เช เชเซเชทเซเชคเซเชฐเซเชจเชพ เชธเชฎเชพเชจ เชธเชฎเซเชน เชธเชพเชฅเซ เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพเช เชเซ
- เชเซ เชเซเชทเซเชเชเชฎเชพเชเชจเชพ เชเซเชทเซเชคเซเชฐเซเชจเซ เชเชจเซเชกเซเชเซเชธเซเชเช เชชเซเชฐเชคเชฟเชฌเชเชงเซเชจเซ เชเชพเชฐเชฃเซ เช
เชจเซเชเซเชฐเชฎเชฟเชค เชเชฐเซ เชถเชเชพเชคเชพ เชจเชฅเซ (เชตเชงเซ เชตเชฟเชเชคเชฎเชพเช เชตเชฐเซเชฃเชตเซเชฒ เชเซ
เช เชนเซเช ).
2) เชตเชฟเชถเซเชทเชคเชพเชเชจเซ เชเช เชจเชตเซ เชตเชฟเชถเซเชทเชคเชพเชฎเชพเช เชฎเชฐเซเช เชเชฐเชตเซ
เชเซเชเชฒเซเชเชตเชพเชฐ เชเช เชเซเชทเซเชเชเชฎเชพเชเชฅเซ เชเซเชเชฒเชพเช เชเซเชทเซเชคเซเชฐเซ, เชเซ เชถเชฐเชคเซเชจเชพ เชเซเชฅ เชฎเชพเชเซ เชเชงเชพเชฐ เชคเชฐเซเชเซ เชธเซเชตเชพ เชเชชเซ เชเซ, เชคเซเชจเซ เชเช เชจเชตเซเช เชเซเชทเซเชคเซเชฐ เชฐเชเซ เชเชฐเซเชจเซ เชฌเชฆเชฒเซ เชถเชเชพเชฏ เชเซ.
เช เชเชพเชธ เชเชฐเซเชจเซ เชธเซเชเซเชเชธ เชซเซเชฒเซเชกเซเชธ เชฎเชพเชเซ เชธเชพเชเซเช เชเซ, เชเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชฌเซเช เช เชฅเชตเชพ เชชเซเชฐเซเชฃเชพเชเช เชชเซเชฐเชเชพเชฐเชฎเชพเช เชนเซเชฏ เชเซ.
เชเชฆเชพเชนเชฐเชฃ:
IsClosed = 0 เช เชจเซ เชฐเชฆ เชเชฐเซเชฒ = 0 เช เชจเซ เชธเชเซเชทเชฎ = 0 เชฆเซเชตเชพเชฐเชพ เชฌเชฆเชฒเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชธเซเชฅเชฟเชคเชฟ = 1.
เช เชคเซ เชธเซเชฅเชพเชจ เชเซ เชเซเชฏเชพเช เช เชธเซเชฅเชฟเชคเชฟเช เชเซเชทเซเชเชเชฎเชพเช เชญเชฐเซเชฒเซ เชเซ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชชเซเชฐเซเชฃเชพเชเช เชธเซเชฅเชฟเชคเชฟ เชตเชฟเชถเซเชทเชคเชพ เชฐเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชเชเชณ, เช เชจเชตเซ เชตเชฟเชถเซเชทเชคเชพ เช เชจเซเชเซเชฐเชฎเชฟเชค เชเซ.
เช เชเชพเชฎเชเซเชฐเซเชจเซ เชธเชฎเชธเซเชฏเชพเชจเซ เชฎเซเชณเชญเซเชค เชเชเซเชฒ เชเซ, เชเชพเชฐเชฃ เชเซ เช เชฎเซ เชฌเชฟเชจเชเชฐเซเชฐเซ เชเชฃเชคเชฐเซเช เชตเชฟเชจเชพ เชกเซเชเชพเชจเซ เชเชเซเชธเซเชธ เชเชฐเซเช เชเซเช.
3) เชฆเซเชถเซเชฏเชจเซเช เชญเซเชคเชฟเชเชเชฐเชฃ
เชเชฎเชจเชธเซเชฌเซ, เชฎเชพเช LINQ เชชเซเชฐเชถเซเชจเซ เชเซเชฎเซเชชเชฐเชฐเซ เชเซเชทเซเชเชเซ, CTE เช เชจเซ เชเซเชฌเชฒ เชตเซเชฐเซเชเชฌเชฒเซเชธเชจเซ เชธเซเชงเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเชพเชคเซ เชจเชฅเซ.
เชเซ เชเซ, เช เชเซเชธ เชฎเชพเชเซ เชเชชเซเชเชฟเชฎเชพเชเช เชเชฐเชตเชพเชจเซ เชฌเซเชเซ เชฐเซเชค เชเซ - เช เชจเซเชเซเชฐเชฎเชฟเชค เชฆเซเชถเซเชฏเซ.
เชถเชฐเชค เชเซเชฅ (เชเชชเชฐเชจเชพ เชเชฆเชพเชนเชฐเชฃเชฎเชพเชเชฅเซ) IsClosed = 0 เช เชจเซ เชฐเชฆ เชเชฐเซเชฒ = 0 เช เชจเซ เชธเชเซเชทเชฎ = 0 (เช เชฅเชตเชพ เช เชจเซเชฏ เชธเชฎเชพเชจ เชถเชฐเชคเซเชจเซ เชธเชฎเซเชน) เชฎเซเชเชพ เชธเชฎเซเชนเชฎเชพเชเชฅเซ เชกเซเชเชพเชจเชพ เชจเชพเชจเชพ เชเซเชเชกเชพเชจเซ เชเซเชถ เชเชฐเซเชจเซ, เช เชจเซเชเซเชฐเชฎเชฟเชค เชฆเซเชถเซเชฏเชฎเชพเช เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชธเชพเชฐเซ เชตเชฟเชเชฒเซเชช เชฌเชจเซ เชเชพเชฏ เชเซ.
เชชเชฐเชเชคเซ เชฆเซเชถเซเชฏเชจเซ เชธเชพเชเชพเชฐ เชเชฐเชคเซ เชตเชเชคเซ เชธเชเชเซเชฏเชพเชฌเชเชง เชชเซเชฐเชคเชฟเชฌเชเชงเซ เชเซ:
- เชธเชฌเชเซเชตเซเชฐเซเช, เชเชฒเชฎเซเชจเซ เชเชชเชฏเซเช เช เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชเซ เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฌเชฆเชฒเชตเซ เชเซเชเช เชเซเชกเชพเช
- เชคเชฎเซ เชตเชพเชเซเชฏเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเชคเชพ เชจเชฅเซ UNION, เชฏเซเชจเชฟเชฏเชจ เชฌเชงเชพ, เชฌเชพเชเชพเชค, เชเชจเซเชเชฐเชธเซเชเซเช
- เชคเชฎเซ เชเซเชทเซเชเช เชธเชเชเซเชคเซ เช เชจเซ เชเชฒเชฎเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเชคเชพ เชจเชฅเซ เชตเชฟเชเชฒเซเชช
- เชเชเซเชฐ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชจเซ เชเซเช เชถเชเซเชฏเชคเชพ เชจเชฅเซ
- เชตเชฟเชตเชฟเชง เชเซเชทเซเชเชเซเชฎเชพเชเชฅเซ เชเช เชฆเซเชถเซเชฏเชฎเชพเช เชกเซเชเชพ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเชตเซเช เช เชถเชเซเชฏ เชเซ
เชคเซ เชฏเชพเชฆ เชฐเชพเชเชตเซเช เช เชเชคเซเชฏเชจเซเช เชเซ เชเซ เช เชจเซเชเซเชฐเชฎเชฟเชค เชฆเซเชถเซเชฏเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชตเชพเชธเซเชคเชตเชฟเช เชฒเชพเชญ เชซเชเซเชค เชคเซเชจเซ เชเชฐเซเชเชฐ เช เชจเซเชเซเชฐเชฎเชฟเชค เชเชฐเซเชจเซ เช เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ.
เชชเชฐเชเชคเซ เชเซเชฏเชพเชฐเซ เชเซเช เชฆเซเชถเซเชฏเชจเซ เชเซเชฒ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชฏเชพเชฐเซ, เช เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพเชเชจเซ เชเชชเชฏเซเช เชฅเช เชถเชเชถเซ เชจเชนเซเช, เช เชจเซ เชคเซเชจเซ เชธเซเชชเชทเซเช เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชธเซเชชเชทเซเช เชเชฐเชตเซเช เชเชตเชถเซเชฏเช เชเซ เชธเชพเชฅเซ(NOEXPAND).
เชคเซเชฏเชพเชฐเชฅเซ LINQ เชชเซเชฐเชถเซเชจเซ เชเซเชทเซเชเช เชธเชเชเซเชคเซเชจเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเชตเซเช เช เชถเชเซเชฏ เชเซ, เชคเซเชฅเซ เชคเชฎเชพเชฐเซ เชฌเซเชเซเช เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต เชฌเชจเชพเชตเชตเซเช เชชเชกเชถเซ - เชจเซเชเซเชจเชพ เชซเซเชฐเซเชฎเชจเซเช "เชฐเซ เชชเชฐ":
CREATE VIEW ะะะฏ_ะฟัะตะดััะฐะฒะปะตะฝะธั AS SELECT * FROM MAT_VIEW WITH (NOEXPAND);
4) เชเซเชทเซเชเช เชเชพเชฐเซเชฏเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ
เชเชฃเซเชตเชพเชฐ เชฎเชพเช LINQ เชชเซเชฐเชถเซเชจเซ เชธเชฌเชเซเชตเซเชฐเซเชเชจเชพ เชฎเซเชเชพ เชฌเซเชฒเซเชเซเชธ เช เชฅเชตเชพ เชเชเชฟเชฒ เชฎเชพเชณเชเชพ เชธเชพเชฅเซเชจเชพ เชฆเซเชถเซเชฏเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฌเซเชฒเซเชเซเชธ เชเซเชฌ เช เชเชเชฟเชฒ เช เชจเซ เชธเชฌเชเชชเซเชเชฟเชฎเชฒ เชเชเซเชเซเชเซเชฏเซเชถเชจ เชธเซเชเซเชฐเชเซเชเชฐ เชธเชพเชฅเซ เช เชเชคเชฟเชฎ เชเซเชตเซเชฐเซ เชฌเชจเชพเชตเซ เชเซ.
เชฎเชพเช เชเซเชทเซเชเช เชเชพเชฐเซเชฏเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเชพ เชฎเซเชเซเชฏ เชฒเชพเชญเซ LINQ เชชเซเชฐเชถเซเชจเซ:
- เชเซเชทเชฎเชคเชพ, เชฆเซเชถเซเชฏเซเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เชเชฌเซเชเซเชเซเช เชคเชฐเซเชเซ เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพ เช
เชจเซ เชเชฒเซเชฒเซเชเชฟเชค เชเชฐเชตเชพเชจเซ, เชชเชฐเชเชคเซ เชคเชฎเซ เชเชจเชชเซเช เชชเชฐเชฟเชฎเชพเชฃเซเชจเซ เชธเชฎเซเชน เชชเชธเชพเชฐ เชเชฐเซ เชถเชเซ เชเซ:
เชซเชเชเซเชถเชจเชฎเชพเชเชฅเซ (@param1, @param2 ...)
เชชเชฐเชฟเชฃเชพเชฎเซ, เชฒเชตเชเซเช เชกเซเชเชพ เชธเซเชฎเซเชชเชฒเชฟเชเช เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ - เชเซเชฌเชฒ เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เชเชชเชฐ เชตเชฐเซเชฃเชตเซเชฒ เช
เชจเซเชเซเชฐเชฎเชฟเชค เชฆเซเชถเซเชฏเซเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช เชเชตเชพ เชเซเช เชฎเชเชฌเซเชค เชชเซเชฐเชคเชฟเชฌเชเชงเซ เชจเชฅเซ:
- เชเซเชทเซเชเช เชธเชเชเซเชคเซ:
เชฆเซเชตเชพเชฐเชพ LINQ เชคเชฎเซ เชธเซเชชเชทเซเช เชเชฐเซ เชถเชเชคเชพ เชจเชฅเซ เชเซ เชเชฏเชพ เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชเซเชเช เช เชจเซ เชเซเชตเซเชฐเซ เชเชฐเชคเซ เชตเชเชคเซ เชกเซเชเชพ เช เชฒเชเชคเชพ เชธเซเชคเชฐ เชจเชเซเชเซ เชเชฐเซ เชถเชเซ เชเซ.
เชชเชฐเชเชคเซ เชเชพเชฐเซเชฏเชฎเชพเช เช เชเซเชทเชฎเชคเชพเช เชเซ.
เชซเชเชเซเชถเชจ เชธเชพเชฅเซ, เชคเชฎเซ เชเชเชฆเชฎ เชธเชคเชค เชเชเซเชเซเชเซเชฏเซเชถเชจ เชเซเชตเซเชฐเซ เชชเซเชฒเชพเชจ เชนเชพเชเชธเชฒ เชเชฐเซ เชถเชเซ เชเซ, เชเซเชฏเชพเช เชเชจเซเชกเซเชเซเชธ เช เชจเซ เชกเซเชเชพ เชเชเชธเซเชฒเซเชถเชจ เชฒเซเชตเชฒ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชจเชพ เชจเชฟเชฏเชฎเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ. - เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เช
เชจเซเชเซเชฐเชฎเชฟเชค เชฆเซเชถเซเชฏเซเชจเซ เชคเซเชฒเชจเชพเชฎเชพเช, เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชชเชฐเชตเชพเชจเชเซ เชเชชเซ เชเซ:
- เชเชเชฟเชฒ เชกเซเชเชพ เชธเซเชฎเซเชชเชฒเชฟเชเช เชคเชฐเซเช (เชฒเซเชชเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเชฃ)
- เชเชฃเชพเช เชตเชฟเชตเชฟเชง เชเซเชทเซเชเชเซเชฎเชพเชเชฅเซ เชกเซเชเชพ เชฎเซเชณเชตเชตเซเช
- เชเชชเชฏเซเช UNION ะธ เช เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชเซ
- เชเซเชทเซเชเช เชธเชเชเซเชคเซ:
- เชเชซเชฐ เชตเชฟเชเชฒเซเชช เชเซเชฏเชพเชฐเซ เชเชชเชฃเซ เชธเชนเชตเชฐเซเชคเซ เชจเชฟเชฏเชเชคเซเชฐเชฃ เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชคเซเชฏเชพเชฐเซ เชเซเชฌ เช เชเชชเชฏเซเชเซ เชตเชฟเชเชฒเซเชช(MAXDOP N), เชเซเชตเซเชฐเซ เชเชเซเชเซเชเซเชฏเซเชถเชจ เชชเซเชฒเชพเชจเชจเซ เชเซเชฐเชฎ. เชฆเชพเชเซเชฒเชพ เชคเชฐเซเชเซ:
- เชคเชฎเซ เชเซเชตเซเชฐเซ เชชเซเชฒเชพเชจเชจเซ เชซเชฐเชเชฟเชฏเชพเชค เชชเซเชจเชเชจเชฟเชฐเซเชฎเชพเชฃเชจเซ เชเชฒเซเชฒเซเช เชเชฐเซ เชถเชเซ เชเซ เชตเชฟเชเชฒเซเชช (เชซเชฐเซ เชเชฎเซเชชเชพเชเชฒ)
- เชคเชฎเซ เชธเซเชชเชทเซเช เชเชฐเซ เชถเชเซ เชเซ เชเซ เชเซเชตเซเชฐเซ เชชเซเชฒเชพเชจเชจเซ เชเซเชตเซเชฐเซเชฎเชพเช เชเชฒเซเชฒเซเชเชฟเชค เชเซเชเชจ เชเชฐเซเชกเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชฆเชฌเชพเชฃ เชเชฐเชตเซเช เชเซ เชเซเชฎ เชตเชฟเชเชฒเซเชช (เชซเซเชฐเซเชธ เชเชฐเซเชกเชฐ)
เชตเชฟเชถเซ เชตเชงเซ เชตเชฟเชเชคเซ เชตเชฟเชเชฒเซเชช เชตเชฐเซเชฃเชตเซเชฒ
เช เชนเซเช . - เชธเซเชฅเซ เชธเชพเชเชเชกเซ เช
เชจเซ เชธเซเชฅเซ เชเชฐเซเชฐเซ เชกเซเชเชพ เชธเซเชฒเชพเชเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ:
เชเซเชถเชฎเชพเช เชฎเซเชเชพ เชกเซเชเชพ เชธเซเชเซเชธ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชตเชพเชจเซ เชเซเช เชเชฐเซเชฐ เชจเชฅเซ (เชเซเชฎ เชเซ เช เชจเซเชเซเชฐเชฎเชฟเชค เชฆเซเชถเซเชฏเซเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช เชเซ), เชเซเชฎเชพเชเชฅเซ เชคเชฎเชพเชฐเซ เชนเชเซ เชชเชฃ เชชเซเชฐเชพเชฎเซเชเชฐ เชฆเซเชตเชพเชฐเชพ เชกเซเชเชพเชจเซ เชซเชฟเชฒเซเชเชฐ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเช เชเซเชฌเชฒ เชเซ เชเซเชจเซเช เชซเชฟเชฒเซเชเชฐ เชเซเชฏเชพเช เชเซ เชคเซเชฐเชฃ เชเซเชทเซเชคเซเชฐเซเชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ (a, b, c).เชชเชฐเชเชชเชฐเชพเชเชค เชฐเซเชคเซ, เชฌเชงเซ เชตเชฟเชจเชเชคเซเชเชฎเชพเช เชธเชคเชค เชธเซเชฅเชฟเชคเชฟ เชนเซเชฏ เชเซ a = 0 เช เชจเซ b = 0.
เชเซ เชเซ, เชเซเชทเซเชคเซเชฐ เชฎเชพเชเซ เชตเชฟเชจเชเชคเซ c เชตเชงเซ เชเชฒ.
เชถเชฐเชค เชฆเซ a = 0 เช เชจเซ b = 0 เชคเซ เชเชฐเซเชเชฐ เช เชฎเชจเซ เชเชฐเซเชฐเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชธเซเชเชจเซ เชนเชเชพเชฐเซ เชฐเซเชเซเชฐเซเชกเซเชธ เชธเซเชงเซ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเซ เชเซ, เชชเชฐเชเชคเซ เชถเชฐเชค เชเชพเชฒเซ เชเซ ั เชชเชธเชเชฆเชเซเชจเซ เชธเซ เชฐเซเชเซเชฐเซเชก เชธเซเชงเซ เชธเชเชเซเชเชฟเชค เชเชฐเซ เชเซ.
เช เชนเซเช เชเซเชฌเชฒ เชซเชเชเซเชถเชจ เชตเชงเซ เชธเชพเชฐเซ เชตเชฟเชเชฒเซเชช เชนเซเช เชถเชเซ เชเซ.
เชเชชเชฐเชพเชเชค, เชเซเชฌเชฒ เชซเชเชเซเชถเชจ เชเชเซเชเซเชเซเชฏเซเชถเชจ เชธเชฎเชฏเชฎเชพเช เชตเชงเซ เช เชจเซเชฎเชพเชจเชฟเชค เช เชจเซ เชธเซเชธเชเชเชค เชเซ.
เชเชฆเชพเชนเชฐเชฃเซ
เชเชพเชฒเซ เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ เชชเซเชฐเชถเซเชจเซเชจเชพ เชกเซเชเชพเชฌเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเช เชเชฆเชพเชนเชฐเชฃ เช เชฎเชฒเซเชเชฐเชฃ เชเซเชเช.
เชเช เชตเชฟเชจเชเชคเซ เชเซ เชชเชธเชเชฆ เชเชฐเซ, เชเซ เช เชจเซเช เชเซเชทเซเชเชเซเชจเซ เชเซเชกเซ เชเซ เช เชจเซ เชเช เชตเซเชฏเซ (เชเชชเชฐเซเชเชฟเชต เชชเซเชฐเชถเซเชจเซ) เชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เชเซเชฎเชพเช เชเชฎเซเชฒ เชฆเซเชตเชพเชฐเชพ เชเซเชกเชพเชฃ เชคเชชเชพเชธเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เช เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชเซ) เชฅเซ "เชธเชเซเชฐเชฟเชฏ เชชเซเชฐเชถเซเชจเซ" ([เชเชชเชฐเซเชเชฟเชต เชชเซเชฐเชถเซเชจเซ]):
เชตเชฟเชจเชเชคเซ เชจเชเชฌเชฐ 1
(@p__linq__0 nvarchar(4000))SELECT
1 AS [C1],
[Extent1].[Id] AS [Id],
[Join2].[Object_Id] AS [Object_Id],
[Join2].[ObjectType_Id] AS [ObjectType_Id],
[Join2].[Name] AS [Name],
[Join2].[ExternalId] AS [ExternalId]
FROM [dbo].[Questions] AS [Extent1]
INNER JOIN (SELECT [Extent2].[Object_Id] AS [Object_Id],
[Extent2].[Question_Id] AS [Question_Id], [Extent3].[ExternalId] AS [ExternalId],
[Extent3].[ObjectType_Id] AS [ObjectType_Id], [Extent4].[Name] AS [Name]
FROM [dbo].[ObjectQuestions] AS [Extent2]
INNER JOIN [dbo].[Objects] AS [Extent3] ON [Extent2].[Object_Id] = [Extent3].[Id]
LEFT OUTER JOIN [dbo].[ObjectTypes] AS [Extent4]
ON [Extent3].[ObjectType_Id] = [Extent4].[Id] ) AS [Join2]
ON [Extent1].[Id] = [Join2].[Question_Id]
WHERE ([Extent1].[AnswerId] IS NULL) AND (0 = [Extent1].[Exp]) AND ( EXISTS (SELECT
1 AS [C1]
FROM [dbo].[OperativeQuestions] AS [Extent5]
WHERE (([Extent5].[Email] = @p__linq__0) OR (([Extent5].[Email] IS NULL)
AND (@p__linq__0 IS NULL))) AND ([Extent5].[Id] = [Extent1].[Id])
));
เชฆเซเชถเซเชฏ เชเช เชเชเชฟเชฒ เชฎเชพเชณเชเซเช เชงเชฐเชพเชตเซ เชเซ: เชคเซเชฎเชพเช เชธเชฌเชเซเชตเซเชฐเซ เชเซเชกเชพเชฏ เชเซ เช เชจเซ เชธเซเชฐเซเชเชฟเชเชเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เช เชฒเช, เชเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชเชเชฆเชฎ เชธเชเชธเชพเชงเชจ-เชธเชเชจ เชเชพเชฎเชเซเชฐเซ เชเซ.
OperativeQuestions เชฎเชพเชเชฅเซ เชเช เชจเชฎเซเชจเชพ เชฒเชเชญเช เชฆเชธ เชนเชเชพเชฐ เชฐเซเชเซเชฐเซเชก เชเซ.
เช เชเซเชตเซเชฐเซ เชธเชพเชฅเซเชจเซ เชฎเซเชเซเชฏ เชธเชฎเชธเซเชฏเชพ เช เชเซ เชเซ เชฌเชพเชนเซเชฏ เชเซเชตเซเชฐเซเชฎเชพเชเชฅเซ เชฐเซเชเซเชฐเซเชกเซเชธ เชฎเชพเชเซ, เชเชเชคเชฐเชฟเช เชธเชฌเชเซเชตเซเชฐเซ [OperativeQuestions] เชตเซเชฏเซ เชชเชฐ เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซ [Email] = @p__linq__0 เชฎเชพเชเซ เช เชฎเชจเซ เชเชเชเชชเซเช เชธเชฟเชฒเซเชเซเชถเชจเชจเซ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเชตเซ เชเซเชเช. เช เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชเซ) เชธเซเชเชเชกเซ เชฐเซเชเซเชฐเซเชกเซเชธ เชธเซเชงเซ.
เช เชจเซ เชเชตเซเช เชฒเชพเชเซ เชเซ เชเซ เชธเชฌเชเซเชตเซเชฐเซเช [เชเชฎเซเชฒ] = @p__linq__0 เชฆเซเชตเชพเชฐเชพ เชเชเชตเชพเชฐ เชฐเซเชเซเชฐเซเชกเชจเซ เชเชฃเชคเชฐเซ เชเชฐเชตเซ เชเซเชเช, เช เชจเซ เชชเชเซ เช เชธเซ เชฐเซเชเซเชฐเซเชกเซเชธเชจเชพ เชฌเซ เชเชเชกเซ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชถเซเชจเซ เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒเชพ เชนเซเชตเชพ เชเซเชเช, เช เชจเซ เชเซเชตเซเชฐเซ เชเชกเชชเซ เชนเชถเซ.
เชตเชพเชธเซเชคเชตเชฎเชพเช, เชฌเชงเชพ เชเซเชทเซเชเชเซเชจเซเช เชเซเชฐเชฎเชฟเช เชเซเชกเชพเชฃ เชเซ: OperativeQuestions เชจเชพ Id เชธเชพเชฅเซ Id เชชเซเชฐเชถเซเชจเซเชจเชพ เชชเชคเซเชฐเชตเซเชฏเชตเชนเชพเชฐเชจเซ เชคเชชเชพเชธเชตเซเช เช เชจเซ เชเชฎเซเชฒ เชฆเซเชตเชพเชฐเชพ เชซเชฟเชฒเซเชเชฐ เชเชฐเชตเซเช.
เชตเชพเชธเซเชคเชตเชฎเชพเช, เชตเชฟเชจเชเชคเซ เชคเชฎเชพเชฎ เชนเชเชพเชฐเซ OperativeQuestions เชฐเซเชเซเชฐเซเชกเซเชธ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซ เชเซ, เชชเชฐเชเชคเซ เชฎเชพเชคเซเชฐ เชเชฎเซเชเชฒ เชฆเซเชตเชพเชฐเชพ เชฐเชธเชจเชพ เชกเซเชเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เชเชชเชฐเซเชเชฟเชต เชชเซเชฐเชถเซเชจเซ เชเซเชเซเชธเซเช เชเซเช:
เชตเชฟเชจเชเชคเซ เชจเชเชฌเชฐ 2
CREATE VIEW [dbo].[OperativeQuestions]
AS
SELECT DISTINCT Q.Id, USR.email AS Email
FROM [dbo].Questions AS Q INNER JOIN
[dbo].ProcessUserAccesses AS BPU ON BPU.ProcessId = CQ.Process_Id
OUTER APPLY
(SELECT 1 AS HasNoObjects
WHERE NOT EXISTS
(SELECT 1
FROM [dbo].ObjectUserAccesses AS BOU
WHERE BOU.ProcessUserAccessId = BPU.[Id] AND BOU.[To] IS NULL)
) AS BO INNER JOIN
[dbo].Users AS USR ON USR.Id = BPU.UserId
WHERE CQ.[Exp] = 0 AND CQ.AnswerId IS NULL AND BPU.[To] IS NULL
AND (BO.HasNoObjects = 1 OR
EXISTS (SELECT 1
FROM [dbo].ObjectUserAccesses AS BOU INNER JOIN
[dbo].ObjectQuestions AS QBO
ON QBO.[Object_Id] =BOU.ObjectId
WHERE BOU.ProcessUserAccessId = BPU.Id
AND BOU.[To] IS NULL AND QBO.Question_Id = CQ.Id));
DbContext เชฎเชพเช เชชเซเชฐเชพเชฐเชเชญเชฟเช เชฆเซเชถเซเชฏ เชฎเซเชชเชฟเชเช (EF เชเซเชฐ 2)
public class QuestionsDbContext : DbContext
{
//...
public DbQuery<OperativeQuestion> OperativeQuestions { get; set; }
//...
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Query<OperativeQuestion>().ToView("OperativeQuestions");
}
}
เชชเซเชฐเชพเชฐเชเชญเชฟเช LINQ เชเซเชตเซเชฐเซ
var businessObjectsData = await context
.OperativeQuestions
.Where(x => x.Email == Email)
.Include(x => x.Question)
.Select(x => x.Question)
.SelectMany(x => x.ObjectQuestions,
(x, bo) => new
{
Id = x.Id,
ObjectId = bo.Object.Id,
ObjectTypeId = bo.Object.ObjectType.Id,
ObjectTypeName = bo.Object.ObjectType.Name,
ObjectExternalId = bo.Object.ExternalId
})
.ToListAsync();
เช เชเซเชเซเชเชธ เชเชฟเชธเซเชธเชพเชฎเชพเช, เช เชฎเซ เชคเซเชฏเชพเชฐ เชชเชฐเชฟเชฃเชพเชฎเซ ("เชธเชเซเชฐเชฟเชฏ เชชเซเชฐเชถเซเชจเซ") เชธเชพเชฅเซ เชเช เช เชฒเช เชเซเชทเซเชเช เชฐเชเซ เชเชฐเซเชฏเชพ เชตเชฟเชจเชพ, เชฎเชพเชณเชเชพเชเซเชฏ เชซเซเชฐเชซเชพเชฐเซ เชตเชฟเชจเชพ เช เชธเชฎเชธเซเชฏเชพเชจเชพ เชเชเซเชฒ เชฎเชพเชเซ เชตเชฟเชเชพเชฐเชฃเชพ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช, เชเซเชฎเชพเช เชคเซเชจเซ เชกเซเชเชพ เชธเชพเชฅเซ เชญเชฐเชตเชพ เช เชจเซ เชคเซเชจเซ เช เชฆเซเชฏเชคเชจ เชฐเชพเชเชตเชพ เชฎเชพเชเซ เชเช เชชเชฆเซเชงเชคเชฟเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ. .
เชเซ เชเซ เช เชเช เชธเชพเชฐเซ เชเชเซเชฒ เชเซ, เช เชธเชฎเชธเซเชฏเชพเชจเซ เชเชชเซเชเชฟเชฎเชพเชเช เชเชฐเชตเชพเชจเซ เชฌเซเชเซ เชตเชฟเชเชฒเซเชช เชเซ.
เชฎเซเชเซเชฏ เชนเซเชคเซ OperativeQuestions เชตเซเชฏเซเชฎเชพเชเชฅเซ [Email] = @p__linq__0 เชฆเซเชตเชพเชฐเชพ เชเชจเซเชเซเชฐเซเช เชเซเชถ เชเชฐเชตเชพเชจเซ เชเซ.
เชกเซเชเชพเชฌเซเชเชฎเชพเช เชเซเชฌเชฒ เชซเชเชเซเชถเชจ [dbo].[OperativeQuestionsUserMail]เชจเซ เชชเชฐเชฟเชเชฏ เชเชชเซ.
เชเชจเชชเซเช เชชเซเชฐเชพเชฎเซเชเชฐ เชคเชฐเซเชเซ เชเชฎเซเชฒ เชฎเซเชเชฒเซเชจเซ, เช เชฎเซ เชฎเซเชฒเซเชฏเซเชจเซเช เชเซเชทเซเชเช เชชเชพเชเซเช เชฎเซเชณเชตเซเช เชเซเช:
เชตเชฟเชจเชเชคเซ เชจเชเชฌเชฐ 3
CREATE FUNCTION [dbo].[OperativeQuestionsUserMail]
(
@Email nvarchar(4000)
)
RETURNS
@tbl TABLE
(
[Id] uniqueidentifier,
[Email] nvarchar(4000)
)
AS
BEGIN
INSERT INTO @tbl ([Id], [Email])
SELECT Id, @Email
FROM [OperativeQuestions] AS [x] WHERE [x].[Email] = @Email;
RETURN;
END
เช เชชเซเชฐเซเชตเชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชกเซเชเชพ เชฎเชพเชณเชเซเช เชธเชพเชฅเซ เชฎเซเชฒเซเชฏเซเชจเซเช เชเซเชทเซเชเช เชเชชเซ เชเซ.
OperativeQuestionsUserMail เชชเชฐเชจเซ เชเซเชตเซเชฐเซ เชถเซเชฐเซเชทเซเช เชฌเชจเชตเชพ เชฎเชพเชเซ เช เชจเซ เชถเซเชฐเซเชทเซเช เชเซเชตเซเชฐเซ เชชเซเชฒเชพเชจ เชงเชฐเชพเชตเชตเชพ เชฎเชพเชเซ, เชเช เชเชกเช เชฎเชพเชณเชเซเช เชเชฐเซเชฐเซ เชเซ, เช เชจเซ เชจเชนเซเช เชฐเชฟเชเชฐเซเชจ เชคเชฐเซเชเซ เชเซเชฌเชฒ เชชเชฐเชค เชเชฐเซ เชเซ...
เช เชเชฟเชธเซเชธเชพเชฎเชพเช, เชเชฐเซเชฐเซ เชเซเชตเซเชฐเซ 1 เชจเซ เชเซเชตเซเชฐเซ 4 เชฎเชพเช เชฐเซเชชเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
เชตเชฟเชจเชเชคเซ เชจเชเชฌเชฐ 4
(@p__linq__0 nvarchar(4000))SELECT
1 AS [C1],
[Extent1].[Id] AS [Id],
[Join2].[Object_Id] AS [Object_Id],
[Join2].[ObjectType_Id] AS [ObjectType_Id],
[Join2].[Name] AS [Name],
[Join2].[ExternalId] AS [ExternalId]
FROM (
SELECT Id, Email FROM [dbo].[OperativeQuestionsUserMail] (@p__linq__0)
) AS [Extent0]
INNER JOIN [dbo].[Questions] AS [Extent1] ON([Extent0].Id=[Extent1].Id)
INNER JOIN (SELECT [Extent2].[Object_Id] AS [Object_Id], [Extent2].[Question_Id] AS [Question_Id], [Extent3].[ExternalId] AS [ExternalId], [Extent3].[ObjectType_Id] AS [ObjectType_Id], [Extent4].[Name] AS [Name]
FROM [dbo].[ObjectQuestions] AS [Extent2]
INNER JOIN [dbo].[Objects] AS [Extent3] ON [Extent2].[Object_Id] = [Extent3].[Id]
LEFT OUTER JOIN [dbo].[ObjectTypes] AS [Extent4]
ON [Extent3].[ObjectType_Id] = [Extent4].[Id] ) AS [Join2]
ON [Extent1].[Id] = [Join2].[Question_Id]
WHERE ([Extent1].[AnswerId] IS NULL) AND (0 = [Extent1].[Exp]);
DbContext (EF เชเซเชฐ 2) เชฎเชพเช เชฆเซเชถเซเชฏเซ เช เชจเซ เชเชพเชฐเซเชฏเซเชจเซเช เชฎเซเชชเชฟเชเช
public class QuestionsDbContext : DbContext
{
//...
public DbQuery<OperativeQuestion> OperativeQuestions { get; set; }
//...
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Query<OperativeQuestion>().ToView("OperativeQuestions");
}
}
public static class FromSqlQueries
{
public static IQueryable<OperativeQuestion> GetByUserEmail(this DbQuery<OperativeQuestion> source, string Email)
=> source.FromSql($"SELECT Id, Email FROM [dbo].[OperativeQuestionsUserMail] ({Email})");
}
เช เชเชคเชฟเชฎ LINQ เชเซเชตเซเชฐเซ
var businessObjectsData = await context
.OperativeQuestions
.GetByUserEmail(Email)
.Include(x => x.Question)
.Select(x => x.Question)
.SelectMany(x => x.ObjectQuestions,
(x, bo) => new
{
Id = x.Id,
ObjectId = bo.Object.Id,
ObjectTypeId = bo.Object.ObjectType.Id,
ObjectTypeName = bo.Object.ObjectType.Name,
ObjectExternalId = bo.Object.ExternalId
})
.ToListAsync();
เช เชฎเชฒเชจเชพ เชธเชฎเชฏเชจเซ เชเซเชฐเชฎ 200-800 ms เชฅเซ เชเชเซเชจเซ 2-20 ms, เชตเชเซเชฐเซ เชฅเช เชเชฏเซ เชเซ, เชเชเชฒเซ เชเซ เชฆเชธ เชเชฃเซ เชเชกเชชเซ.
เชเซ เชเชชเชฃเซ เชคเซเชจเซ เชตเชงเซ เชธเชฐเซเชฐเชพเชถ เชฒเชเช, เชคเซ 350 ms เชจเซ เชฌเชฆเชฒเซ เชเชชเชฃเชจเซ 8 ms เชฎเชณเซ เชเซ.
เชธเซเชชเชทเซเช เชซเชพเชฏเชฆเชพเชเชฎเชพเชเชฅเซ เช เชฎเชจเซ เชชเชฃ เชฎเชณเซ เชเซ:
- เชตเชพเชเชเชจเชจเชพ เชญเชพเชฐเชฎเชพเช เชธเชพเชฎเชพเชจเซเชฏ เชเชเชพเชกเซ,
- เช เชตเชฐเซเชงเชฟเชค เชฅเชตเชพเชจเซ เชธเชเชญเชพเชตเชจเชพเชฎเชพเช เชจเซเชเชงเชชเชพเชคเซเชฐ เชเชเชพเชกเซ
- เชธเชฐเซเชฐเชพเชถ เช เชตเชฐเซเชงเชฟเชค เชธเชฎเชฏเชจเซ เชธเซเชตเซเชเชพเชฐเซเชฏ เชฎเซเชฒเซเชฏเซ เชธเซเชงเซ เชเชเชพเชกเชตเซ
เชจเชฟเชทเซเชเชฐเซเชท
เชกเซเชเชพเชฌเซเช เชเซเชฒเซเชธเชจเซเช เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจ เช เชจเซ เชซเชพเชเชจ-เชเซเชฏเซเชจเชฟเชเช เชเชฎเชเชธ เชเชธเชเซเชฏเซเชเชฒ เชฆเซเชตเชพเชฐเชพ LINQ เชเช เชธเชฎเชธเซเชฏเชพ เชเซ เชเซ เชเชเซเชฒเซ เชถเชเชพเชฏ เชเซ.
เช เชเชพเชฐเซเชฏเชฎเชพเช เชธเชเซเชคเชคเชพ เช เชจเซ เชธเชพเชคเชคเซเชฏ เชเซเชฌ เช เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซ.
เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชถเชฐเซเชเชคเชฎเชพเช:
- เชคเซ เชกเซเชเชพ เชคเชชเชพเชธเชตเซ เชเชฐเซเชฐเซ เชเซ เชเซ เชเซเชจเซ เชธเชพเชฅเซ เชตเชฟเชจเชเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ (เชฎเซเชฒเซเชฏเซ, เชชเชธเชเชฆ เชเชฐเซเชฒเชพ เชกเซเชเชพ เชชเซเชฐเชเชพเชฐเซ)
- เช เชกเซเชเชพเชจเซเช เชฏเซเชเซเชฏ เชเชจเซเชกเซเชเซเชธเซเชเช เชเชฐเซ
- เชเซเชทเซเชเชเซ เชตเชเซเชเซ เชเซเชกเชพเชตเชพเชจเซ เชธเซเชฅเชฟเชคเชฟเชจเซ เชถเซเชฆเซเชงเชคเชพ เชคเชชเชพเชธเซ
เชเชเชพเชฎเซ เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจ เชชเซเชจเชฐเชพเชตเซเชคเซเชคเชฟ เชฆเชฐเซเชถเชพเชตเซ เชเซ:
- เชตเชฟเชจเชเชคเซเชจเชพ เชเชงเชพเชฐเซ เช เชจเซ เชฎเซเชเซเชฏ เชตเชฟเชจเชเชคเซ เชซเชฟเชฒเซเชเชฐเชจเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซ เชเซ
- เชธเชฎเชพเชจ เชเซเชตเซเชฐเซ เชฌเซเชฒเซเชเซเชธเชจเซเช เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เช เชจเซ เชถเชฐเชคเซเชจเชพ เชเชเชคเชฐเชเซเชฆเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ
- เชฎเชพเชเซ SSMS เช เชฅเชตเชพ เช เชจเซเชฏ GUI เชฎเชพเช SQL เชธเชฐเซเชตเชฐ เชชเซเชคเชพเชจเซ เชถเซเชฐเซเชทเซเช เชฌเชจเชพเชตเซ เชเซ SQL เชเซเชตเซเชฐเซ (เชเช เชฎเชงเซเชฏเชตเชฐเซเชคเซ เชกเซเชเชพ เชธเซเชเซเชฐเซเชเชจเซ เชซเชพเชณเชตเชฃเซ, เช เชธเซเชเซเชฐเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชเซเชตเซเชฐเซ เชฌเชจเชพเชตเชตเซ (เชคเซเชฏเชพเช เชเชฃเชพ เชนเซเช เชถเชเซ เชเซ))
- เชเซเชฒเซเชฒเชพ เชคเชฌเชเซเชเซ, เชชเชฐเชฟเชฃเชพเชฎเชจเซ เชเชงเชพเชฐเซ เชฒเซเชตเซเช SQL เชเซเชตเซเชฐเซ, เชฎเชพเชณเชเซเช เชซเชฐเซเชฅเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชฐเชนเซเชฏเซเช เชเซ LINQ เชเซเชตเซเชฐเซ
เชชเชฐเชฟเชฃเชพเชฎเซ LINQ เชเซเชตเซเชฐเซ เชเชณเชเชพเชฏเซเชฒ เชถเซเชฐเซเชทเซเช เชฎเชพเชเซ เชฌเชเชงเชพเชฐเชฃเชฎเชพเช เชธเชฎเชพเชจ เชฌเชจเชตเซเช เชเซเชเช SQL เชเซเชตเซเชฐเซ เชฌเชฟเชเชฆเซ 3 เชฅเซ.
เชธเซเชตเซเชเซเชคเชฟเช
เชธเชนเชเชพเชฐเซเชฏเชเชฐเซเชจเซ เชเซเชฌ เชเซเชฌ เชเชญเชพเชฐ
เชธเซเชฐเซเชธ: www.habr.com