Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

properties class anders dan tabelvelden in database?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, Ik weet niet hoe ik de vraag moet omschrijven, en waarschijnlijk kan ik daarom na veel zoeken ook nog steeds geen oplossing voor mijn vraagstuk vinden:
Hierbij een vereenvoudigde versie van mijn o zo grote probleem.

Stel ik heb een tabel Relaties
Relatie_ID (PK)
Relatie_Naam
Relatie_Status_ID (FK)

En ook een tabel Status
Status_ID (PK)
Status_Omschrijving

In mijn Business layer heb ik een class Relatie en ook een class Status

In de class Relatie heb ik 2 constructors.
Public Relatie()
{
}

en Public Relatie (int Relatie_ID)
{
// Hier vul ik dan alle properties vanuit de Data Access layer door de relatie met het betreffende ID uit de database te halen.
}

In de class Status heb ook ook 2 zulke constructors.

Vraag 1:
Is het gebruikelijk om in mijn class relatie een property van het type Status te maken? (Optie A.)
Of gewoon een property Relatie_Status_ID van het type int? (Optie B.)
Bij optie A moet ik dan op een of andere manier als ik een bestaande relatie uit de database haal, en in een object wil laden ook de propertie Categorie (Van het type Categorie) vullen, en dus de constructor van Categorie met de bijbehorende Categorie_ID aanroepen. Snappen jullie het nog?
Is dat normaal om zo te doen?

Vraag 2:
In de Business layer heb ik ook een class genaamd FactoryRelatie gemaakt met daarin een functie GetRelaties() Deze retourneert een lijst met relaties van het type List<Relatie>
Dit doe ik door de DataAcceslayer aan te roepen en voor elke row in de database een nieuw object Relatie te maken. Ik roep elke keer de constructor van de relatie aan waar ik de ID kan meegeven.
Dat leek mij mooi, omdat je dan een lijst met objecten hebt. Maar is dit wel mooi?
Ik denk het niet, hij gaat dan per relatie gegevens uit de DB halen, en ook nog eens voor elke categorie indien we voor optie A hebben gekozen.

Ik wil echter de relaties in een gridview laten zien (ASP.NET) en daarbij de bijbehorende Categorie_Omschrijving!
Weet iemand een link of een tip hoe ik dit het beste aan kan pakken?

Ik ben een nieuwe applicatie aan het bouwen, het datamodel is klaar, maar ik ben een beetje een beginneling als het gaat om hoe ik dat op een goede manier vertaal naar een 3 lagen structuur, en hoe vooral de layout van de classes.

Het moet toch een veel voorkomend probleem zijn dat men in een gridview of lijst gegevens wil laten zien die eigenlijk uit een view komen uit de database. Ik kan dit dus niet goed vertalen naar mijn objecten

Ik hoop dat iemand een goede tip heeft!!!

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Er is hier geen eenvoudig antwoord op (helaas). Er zijn meerdere oplossingen, elk met hun voor- en nadelen. Bovendien komen er al snel veel meer kwesties bij (wat doe je met toevoegen, verwijderen, later 'objecten' toevoegen, lijsten ophalen, etc.) waarbij het niet eenvoudig is om snel met een goed design te komen. Het bewijs hiervoor komt uit de OR/M (Object-Relational Mapper, zie [google=OR Mapper .NET]) wereld, waarbij er diverse producten zijn die al jaren in ontwikkeling zijn en er is nog steeds geen enkel overheersend paradigma. Als het je enkel te doen is om de slag te maken van database<->programmatuur dan zou ik een bestaande OR/Mapper (zoals NHibernate, LLBLGen Pro, Wilson OR Mapper, ) gebruiken. Dit zal je zeeën van tijd en veel frustratie besparen. Ga er maar vanuit dat je eerste (naïeve) design geen optimale oplossing zal zijn. Wil je toch graag zelf de code schrijven (bijvoorbeeld om meer inzicht te krijgen, of als oefening) dan zou ik ook kijken naar hoe bestaande oplossingen het hebben aangepakt.