See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 17061|Vastuse: 0

[ASP.NET] Põhineb sellel. .LINQ-st SQL-iks kolmekihilise arhitektuuri arendus

[Kopeeri link]
Postitatud 08.05.2015 15:47:22 | | | |

Ees kirjutatud

Põhineb sellel. .NET kolmetasandiline arhitektuur jaguneb järgmisteks kihtideks: Data Linq kiht, andmejuurdepääsukiht, äriloogika kiht ja esitluskiht. Alloleval joonisel 1 olevad noolesümbolid illustreerivad kihtidevahelist vastastikmõju: andmejuurdepääsukiht viitab Data LINQ kihile; Äriloogika kiht viitab andmejuurdepääsu kihile ja entiteedi klassidele Data LINQ kihis. Esitluskiht viitab äriloogika kihile ning Data LINQ kihi entiteediklassidele.

Data LINQ kiht hõlmab peamiselt entiteediklasse ja Data Context klasse. Tavaliselt on entiteetklass ühe tabeli jaoks andmebaasis. Saame luua entiteetklasside eksemplare, mis kantakse erinevate kihtide vahel andmeobjektidena.

        Joonis 1 LINQ-st SQL-i kolmekihiline arhitektuur

Järgnevalt on näide sisselogimisaknast projekti loomisel, et tutvustada LINQ-i kolmetasandilist arhitektuuri arendust SQL-ile

Ettevalmistus

1. Esiteks on vaja andmebaasi ja andmetabelit, kuhu salvestada sisse logitud isiku kasutajanimi ja parool. Siin kasutatakse SQL Server 2005 andmebaasi. Andmebaasitabeli struktuur on näidatud joonisel 2.

Joonis 2 Andmebaasi kasutajatabel

2. Ava VS ja loo uus projekt ---> teised projektitüübid---> Visual Studio lahendused---> tühjad lahendused. Nagu näidatud joonisel 3. (Siin kasutatakse Visual Studio 2008)


Joonis 3 Loo tühi lahendus

3. Lisa klassi raamatukogu. Paremklõpsuga äsja loodud lahendusel Solution Exploreris ---> lisa ---> uus projekt ---> klassiteek. Nagu näidatud joonisel 4. Sama meetod nõuab kolme raamatukogu – BLL, DAL ja DataLinq – lisamist ning Windows Forms rakenduse (kui tegemist on veebirakenduse arendusega, vali ASP.NET veebirakendus) ja nimeta see kasutajaliideseks.


Joonis 4 Lisa raamatukoguprojekt

Struktuuri pärast liitmist on näidatud joonisel 5. Samal ajal tee kasutajaliidesel paremklõps ja määra kasutajaliides käivitusesemeks.


Joonis 5 Projekti struktuuri skeem

Lisa tsitaat

Lahenduste halduris lisa igale tasemele viited. BLL kiht Select References --->paremklõps ---> lisa viited. Nagu näidatud joonisel 6. Lisa viide lehele System.Data.Linq. Samas, vastavalt joonisel 1 näidatud kihtide omavahelisele seosele, lisa projektiviited DAL-ile ja DataLinq-ile. Samamoodi lisab DAL-kiht projektiviited System.Data.Linq ja DataLinq platvormidele, DataLinq kiht lisab viited System.Data.Linq-le ning UI kiht lisab viited System.Data.Linq-ile ning projektiviited BLL-ile ja DataLinq-ile.


Joonis 6 Lisa projekti viited

Siiani on loodud kolmetasandiline arhitektuur. Järgnevalt lisatakse igale kihile nende vastavad klassid.

1. Esiteks DataLinq kiht. Paremklõpsa DataLinq---> lisa ---> uus projekt---> vali LINQ to SQL klass, nagu näidatud joonisel 7.


Joonis 7 LINQ lisamine SQL-klassile

2. Pärast lisamise lõpetamist luuakse automaatselt tühi disainer (.dbml fail) koos lingiga Server Explorerile, samuti seotud dbml.layout failile (XML-fail) ja designer.cs failile. Ava Server Explorer ja loo link andmebaasile.


Joonis 8 Avatud serveri uurija

3. Ühendu andmebaasiga. Vali tööriist ---> lisa andmebaas. Nagu näidatud joonisel 9. Vali äsja loodud andmebaas ja määra ühendusandmebaas. Sel hetkel ilmub andmebaas Server Exploreris.


4. Valige andmetabel, mida soovite kasutada, lohista ja viska see disainerile, nagu näidatud alloleval joonisel 10. Salvesta fail. Nüüd on automaatselt genereeritud DataContext klassid ja entiteediklassid seotud omaduste, meetodite ja meetoditega.


Joonis 10 Kasutajaklass

Lisa koodikihid

DAL-kiht

Loo uus UserDAL klass ja lisa järgmine kood

//UserDAL.cs

kasutades DataLinqi;
kasutades System.Data.Linq;

nimeruum DAL
{
    public class UserDAL
    {
        private DataLinq.DBLinqDataContext objDataContext = uus DataLinq.DBLinqDataContext();

        public User SelectRecordByID (string userid)
        {
            proovi
            {
                return (u-st objDataContext.User failis, kus u.Id == userid vali u). Single();
            }
            catch (Exception ex)
            {
                viska ex;
            }
        }
    }
}

BLL kiht

Loo uus UserBLL klass ja lisa järgmine kood

//UserBLL.cs

kasutades System.Data.Linq;
kasutades DataLinqi;

nimeruum BLL
{
    public class UserBLL
    {
        privaatne DAL. UserDAL objUserDAL = uus DAL. UserDAL();

        public User SelectRecordByID (string userid)
        {
            return objUserDAL.SelectRecordByID(userid);
        }
    }
}

UI kihi kood

//LoginForm.cs

privaatne BLL. UserBLL objUserBLL = uus BLL. UserBLL();
      
        privaatne void btnSubmit_Click(objekti saatja, EventArgs e)
        {
            string id = txtId.Text.Trim();
            string psd = txtPsd.Text.Trim();

            Kasutaja localDataTable = objUserBLL.SelectRecordByID(id);

            if (localDataTable != null && localDataTable.Psd == psd)
            {
                MessageBox.Show ("Edu");
            }
            else
            {
                MessageBox.Show ("vale");
            }
        }

Sel hetkel on sisselogimisliidese kood valmis. Sa võid selle käivitada, et näha mõju.






Eelmine:Kui sul on selle käsuga juba avatud DataReader, pead selle esmalt sulgema.
Järgmine:LINQ saab salvestatud protseduuri tagastamise väärtuse probleemi minu salvestatud protseduuri
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com