Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 17061|Svar: 0

[ASP.NET] Baseret på. .LINQ til SQL tre-lags arkitekturudvikling

[Kopier link]
Opslået på 08/05/2015 15.47.22 | | | |

Vrøvl skrevet foran

Baseret på. Den tre-lags arkitektur i .NET kan opdeles i følgende lag: Data Linq-laget, dataadgangslaget, forretningslogiklaget og præsentationslaget. Pilsymbolerne i figur 1 nedenfor illustrerer interaktionen mellem lagene: dataadgangslaget refererer til Data LINQ-laget; Business Logic-laget refererer til dataadgangslaget og entitetsklasserne i Data LINQ-laget. Præsentationslaget refererer til forretningslogiklaget samt entitetsklasserne i Data LINQ-laget.

Data LINQ-laget omfatter hovedsageligt entitetsklasser og Data Context-klasser. Typisk er en entitetsklasse for én tabel i databasen. Vi kan oprette instanser af entitetsklasser, der overføres mellem forskellige lag som dataobjekter.

        Figur 1: LINQ til SQL tre-lags arkitektur

Følgende er et eksempel på loginvinduet, når man opretter et projekt, for at introducere den tre-lags arkitekturudvikling af LINQ til SQL

Præparation

1. Først skal du bruge en database og en datatabel til at gemme brugernavn og adgangskode på den indloggede person. Her bruges en SQL Server 2005-database. Databasetabelstrukturen vises i Figur 2.

Figur 2 Databasebrugertabel

2. Åbn VS og opret et nyt projekt ---> andre projekttyper---> Visual Studio-løsninger---> blanke løsninger. Som vist i Figur 3. (Visual Studio 2008 bruges her)


Figur 3 Opret en blank løsning

3. Tilføj et klassebibliotek. Højreklik på den nyoprettede løsning i Solution Explorer ---> tilføje ---> nyt projekt ---> klassebibliotek. Som vist i Figur 4. Den samme metode kræver tilføjelse af tre biblioteker, BLL, DAL og DataLinq, samt et Windows Forms-program (hvis det er en webapplikationsudvikling, vælg ASP.NET webapplikation) og navngiver det UI.


Figur 4 Tilføj et biblioteksprojekt

Strukturen efter tilføjelsen vises i Figur 5. Samtidig højreklik på UI'en og sæt UI'en som launch-element.


Figur 5 Projektets strukturdiagram

Tilføj et citat

I Solution Explorer skal du tilføje referencer til hvert niveau. BLL lag Vælg referencer --->højreklik ---> tilføj referencer. Som vist i Figur 6. Tilføj en reference til System.Data.Linq. Samtidig, ifølge forholdet mellem lagene vist i figur 1 ovenfor, tilføj projektreferencer til DAL og DataLinq. På samme måde tilføjer DAL-laget projektreferencer til System.Data.Linq og DataLinq, DataLinq-laget tilføjer referencer til System.Data.Linq, og UI-laget tilføjer referencer til System.Data.Linq og projektreferencer til BLL og DataLinq.


Figur 6 Tilføj projektreferencer

Indtil videre er der etableret en tre-niveaus arkitektur. Følgende er at tilføje deres tilsvarende klasser til hvert lag.

1. Først, DataLinq-laget. Højreklik på DataLinq---> tilføj ---> nyt projekt---> vælg LINQ to SQL-klassen, som vist i figur 7.


Figur 7 Tilføjelse af en LINQ til SQL-klassen

2. Når tilføjelsen er færdig, oprettes en tom designer (.dbml-fil) automatisk med et link til Server Explorer samt den tilhørende dbml.layout-fil (XML-fil) og designer.cs fil. Åbn Server Explorer og etabler et link til databasen.


Figur 8 Open Server Explorer

3. Forbind til databasen. Vælg værktøjet ---> tilføje database. Som vist i figur 9. Vælg den nyoprettede database og bestem forbindelsesdatabasen. På dette tidspunkt vil databasen vises i Server Explorer.


4. Vælg den datatabelbruger, du vil bruge, træk og slip den over i designeren, som vist i figur 10 nedenfor. Gem filen. Nu er DataContext-klasser og entitetsklasser med relaterede egenskaber, metoder og metoder automatisk genereret.


Figur 10 Brugerklasse

Tilføj lag af kode

DAL-lag

Opret en ny UserDAL-klasse og tilføj følgende kode

//UserDAL.cs

ved brug af DataLinq;
ved brug af System.Data.Linq;

navnerum DAL
{
    offentlig klasse UserDAL
    {
        privat DataLinq.DBLinqDataContext objDataContext = ny DataLinq.DBLinqDataContext();

        offentlig bruger SelectRecordByID (streng userid)
        {
            Prøv
            {
                return (fra u i objDataContext.User hvor u.Id == userid vælg u). Single();
            }
            catch (Undtagelse f.eks.)
            {
                Kast eks;
            }
        }
    }
}

BLL lag

Opret en ny UserBLL-klasse og tilføj følgende kode

//UserBLL.cs

ved brug af System.Data.Linq;
ved brug af DataLinq;

navnerum BLL
{
    offentlig klasse UserBLL
    {
        privat DAL. UserDAL objUserDAL = ny DAL. UserDAL();

        offentlig bruger SelectRecordByID (streng userid)
        {
            return objUserDAL.SelectRecordByID(userid);
        }
    }
}

UI-lagkode

//LoginForm.cs

privat BLL. UserBLL objUserBLL = ny BLL. UserBLL();
      
        privat void btnSubmit_Click(objektafsender, EventArgs e)
        {
            string id = txtId.Text.Trim();
            string psd = txtPsd.Text.Trim();

            Bruger localDataTable = objUserBLL.SelectRecordByID(id);

            hvis (localDataTable != null && localDataTable.Psd == psd)
            {
                MessageBox.Show("Succes");
            }
            ellers
            {
                MessageBox.Show("falsk");
            }
        }

På dette tidspunkt er koden til login-grænsefladen færdig. Du kan køre det for at se effekten.






Tidligere:Hvis du allerede har en åben DataReader tilknyttet denne kommando, skal du først lukke den.
Næste:LINQ får problemet med lagret procedure, return-værdi min stored procedure
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com