ASP.NET MVC Урок 1-F / ASP NET.MVC Урок 3
.pdfLQVWDQFH$FWLYDWHG/LQN 8VHU *HW$FWLYDWH8UO
'E 8VHUV ,QVHUW2Q6XEPLW LQVWDQFH
'E 8VHUV &RQWH[W 6XEPLW&KDQJHV
UHWXUQ WUXH
`
UHWXUQ IDOVH
`
Использование БД в asp.net mvc
Добавим строку доступа к БД в web.Config:
FRQQHFWLRQ6WULQJV!
DGG QDPH &RQQHFWLRQ6WULQJ FRQQHFWLRQ6WULQJ 'DWD 6RXUFH 6$7851 3& ,QLWLDO &DWDORJ /HVVRQ3U RMHFW ,QWHJUDWHG 6HFXULW\ 7UXH 3RROLQJ )DOVH SURYLGHU1DPH 6\VWHP 'DWD 6TO&OLHQW!FRQQHFWLRQ6WULQJV!
Проинициализируем работу с БД в Ninject:
SULYDWH VWDWLF YRLG 5HJLVWHU6HUYLFHV,.HUQHO NHUQHO
^
NHUQHO %LQG /HVVRQ3URMHFW'E'DWD&RQWH[W! 7R0HWKRG F !QHZ/HVVRQ3URMHFW'E'DWD&RQWH[ W &RQILJXUDWLRQ0DQDJHU &RQQHFWLRQ6WULQJV>&RQQHFWLRQ6WULQJ@ &RQQHFWLRQ6WULQJ
NHUQHO %LQG ,5HSRVLWRU\! 7R 6TO5HSRVLWRU\! ,Q5HTXHVW6FRSH
`
Применяем InRequestScope(). Т.е. каждый запрос будет использовать отдельный объект SqlRepository. Это позволит избежать коллизий при исполнении.Объявляем IRepository в контроллере:
SXEOLF FODVV +RPH&RQWUROOHU &RQWUROOHU
^
>,QMHFW@
SXEOLF,5HSRVLWRU\ 5HSRVLWRU\ ^JHW VHW`
SXEOLF $FWLRQ5HVXOW,QGH[
^
YDUUROHV 5HSRVLWRU\ 5ROHV 7R/LVW
UHWXUQ9LHZ UROHV
`
`
И обновляем View (/Views/Home/Index.cshtml):
#PRGHO ,/LVW/HVVRQ3URMHFW 0RGHO 5ROH! #^
9LHZ%DJ 7LWOH /HVVRQ3URMHFW
/D\RXW a 9LHZV 6KDUHG B/D\RXW FVKWPO
`
K!/HVVRQ3URMHFWK!
S!
#IRUHDFK YDU UROH LQ 0RGHO
^
GLY FODVV LWHP!
VSDQ FODVV LG!
#UROH ,'
VSDQ!
VSDQ FODVV QDPH!
#UROH 1DPH
VSDQ!
VSDQ FODVV &RGH!
#UROH &RGH
VSDQ!
GLY!
`
S!
Получаем хороший результат:
Все исходники находятся по адресу https://bitbucket.org/chernikov/lessons