14. maj 2013 - 20:56Der er
10 kommentarer og 1 løsning
Opret objekt fra data i DB
Hej,
Jeg har lidt svært ved at gennemskue hvordan man lettest får oprettet et objekt med data fra en DB. Det objekt jeg skal oprette er af min egen klasse, men problemet er at klasse ligger i et andet lag end min databaseHandler. Hvilket betyder at jeg blot kan skrive new Kunde(.....).
Dit data access layer har en klasse med en metode som returnerer en instans af en data klasse som ogsaa er i dit data access layer.
Du kan saa vaelge at lade dit business logic layer bruge den data klasse eller du kan vaelge at konvertere til en data klasse som er en del af dit business logic layer.
Synes godt om
Slettet bruger
14. maj 2013 - 21:15#2
Den klasse som du omtaler at mit data lag har, som mit business lag også har. Er mit resultset? Som jeg blot kunne sende retur til mit business lag og så gennemløbe det der, hvor min Kunde klasse er kendt. Eller har jeg misforstået dig? Men er det ikke lidt uheldigt? Jeg ville gerne, hvis det er muligt, lave så mit business lag ikke kendte til DBen.
Det er helt normalt at BLL har en dependency paa DAL.
Det omvendte ville vaere meget slemt.
Synes godt om
Slettet bruger
14. maj 2013 - 21:37#5
Jeg er med på at BLL afhænger af DAL og det gør det også ved mig. Men jeg kan dog forsat ikke se, hvordan jeg kan lave en række objekter fra mine data i DB.
Jeg tænker om det er muligt at oprette et objekt og så type-cast det i mit BLL, men det har jeg heller ikke fået til at lykkes.
public class DataAccess { public SomeData GetSomeData() { ... } }
BLL:
DataAccess da = ...; ... SomeData o = da.GetSomeData();
Synes godt om
Slettet bruger
15. maj 2013 - 09:19#7
Hej,
Jeg har fundet en løsning på det, men ved ikke om den rent design er en smart løsning. Jeg laver blot nogle Object, som jeg så kan caste i mit BLL til min rette klasse.
Der er vel ikke noget galt i, at dit DAL også kender din "data object klasse", så du er fri for at caste. Prøv evt. at google DTO (Data Transfer Object).
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.