Toon posts:

[VB.net] Typed Datasets

Pagina: 1
Acties:

Verwijderd

Topicstarter
Zit ik op 99% van de oplossing, krijg ik gewoon een voor mij onoplosbare foutmelding. Mischien dat iemand hier een ingeving heeft.

Ik heb het volgende:
1 Data Laag met een procedure die een dataset teruggeeft
1 Business Laag met een procedure die een dataset uit de Data Laag ophaalt.

Nu wilde ik het geheel met een Typed Dataset gaan gebruiken. Daarvoor heb ik via xsd een class aangemaakt met de Typed Dataset. Werkt prima allemaal. Hij heet dataBehandelingen.

Ok, dus ik die dataBehandelingen toegevoegd aan de Data Laag. De procedure ziet er dan als volgt uit:

Public Function Ophalen(ByVal PK As Int32) As dataBehandelingen
Dim dstInfoCodes As New dataBehandelingen()
[...code...]
Return dstInfoCodes
end function

In mijn Business Laag ook een class toegevoegd voor dataBehandelingen. De procedure daarin ziet er dan zo uit:

Public Function Ophalen() As dataBehandelingen
Dim dlBeh As New Datalaag.dlBeh()
Dim dst As New dataBehandelingen()
dst = dlBeh.Ophalen(PK)
Return dst
End Function

Maar nu geeft ie dus tijdens Run-time al aan dat:
Value of type 'Datalaag.dataBehandelingen' cannot be converted to 'Businessrules.dataBehandelingen'.

Tja, wat wil'ie dan gaan converten? Ze zijn per slot van rekening allebei hetzelfde. Een Dataset wordt toch ook niet geconvert naar een Dataset?!

Wat moet er nog bij, of kan het uberhaupt niet wat ik in gedachten heb?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

offtopic:
Euh, 't lijkt op VB, dus dat zal ik maar in de topictitle zetten... Als 't iets anders is meldt 't dan ff.


edit:
vb.net it is

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
drm schreef op 29 oktober 2002 @ 16:23:
offtopic:
Euh, 't lijkt op VB, dus dat zal ik maar in de topictitle zetten... Als 't iets anders is meldt 't dan ff.
Doe dan maar VB.Net. Want dat is het eigenlijk. Alhoewel c# mensen het principe natuurlijk ook kennen.

Maar duidelijk is dat ik een lastig vraagstuk heb gevonden. Ben ondertussen nog hard aan het zoeken, maar weinig info te vinden eigenlijk.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:17

mulder

ik spuug op het trottoir

Datalang.dataBehandelingen en Businessrules.dataBehandelingen moeten wel naar dezelfde dataBehandeligen wijzen

Edit: zelfde class bedoel ik dan

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Don Facundo schreef op 29 oktober 2002 @ 16:30:
Datalang.dataBehandelingen en Businessrules.dataBehandelingen moeten wel naar dezelfde dataBehandeligen wijzen
Daar heb je gelijk in.

Wat ik dan doe is:
In de Business Laag maak ik een dataset aan op basis van Datalaag.dataBehandelingen. Dan werkt het hartstikke goed! Alle data wordt dan netjes in die dataset gepompt.
Dan heb ik dus niet eens meer een Businessrules.dataBehandelingen nodig

De volgende laag is dan de WInUI of WebUI laag, maar omdat die geen referentie MAG hebben naar de Datalaag, kan ik dus nooit een Typed Dataset maken o.b.v. Datalaag.dataBehandelingen zoals dat wel kan in de Businessrules.
Jammergenoeg loop ik dus ondanks jouw goede suggestie vroeg of laat tegen een muur aan.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:17

mulder

ik spuug op het trottoir

Maar wel een BusinessRules.dataBehandelingen als het goed is.
En die kan weer bij DataLaag...

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Don Facundo schreef op 29 oktober 2002 @ 16:44:
Maar wel een BusinessRules.dataBehandelingen als het goed is.
En die kan weer bij DataLaag...
Nope, jammergenoeg werkt dat dus niet.

Ik heb geprobeerd:
-Een BusinessRules.dataBehandelingen die inherit van DataLaag.dataBehandelingen. Maar zodra mijn UI hiernaar verwijst, wordt er gevraagd om een referentie naar de DataLaag. En dat mag niet van mij.

-Een BusinessRules.dataBehandelingen met precies dezelfde code als DataLaag.dataBehandelingen. Het zijn dus dan precies dezelfde classes, maar data kan niet van de een naa de ander worden overgezet. (Value connot be converterd, zoals ik al eerder schreef)

Vaag dit zeg.

Thanks voor het meedenken!

En we zoeken rustig verder :)

Verwijderd

Waarom maak je niet 1 assembly waarin je typed dataset zit en laat al je lagen een referentie opnemen naar deze assembly :?

Dus dan heb je gewoon je 3 laagjes:
- WebUI / WinUI
- Biz
- Data
En nog een Dataset "laag", waarin alleen je dataset definitie staat...
edit:
Denk anders ook eens aan interfaces...

Verwijderd

Topicstarter
Verwijderd schreef op 29 oktober 2002 @ 16:56:
Waarom maak je niet 1 assembly waarin je typed dataset zit en laat al je lagen een referentie opnemen naar deze assembly :?
Je hebt helemaal gelijk dat dit een goede oplossing is als 1 persoon/ groep/ bedrijf het systeem ontwikkeld.
Zodra je bijvoorbeeld de DataLaag as webservice ter beschikking stelt dan vervalt de mogelijkheid van 1 assembly voor het hele project jammergenoeg. Dan zou je er natuurlijk voor kunnen kiezen om een nieuwe dataset te bakken op basis van een xml-bestand, maar dan is het mooie van '1 datalaag, 1 keer een dataset erbij bakken' niet meer aanwezig.

Ik heb trouwens nog een paar obscure bronnen van informatie gevonden. Die lees ik nog even door, en dan post ik hier wel wat ik daaruit haal.

Verwijderd

Verwijderd schreef op 29 oktober 2002 @ 22:18:
Zodra je bijvoorbeeld de DataLaag as webservice ter beschikking stelt [...]
:) Ah, er komt ineens allemaal extra informatie bij...

Je kunt een <system.runtime.remoting> sectie opnemen in de web.config, waarin je de benodigde remote service objecten als wellknown objects kunt beschrijven. Maar hoe dit precies werkt, weet ik helaas ook nog niet. :'(

Gebruik je wel ServiceObjecten? (Zijn die afgeleid van het System.MarshalByRefObject?) Heb je al geprobeerd om een interface-definitie te maken adhv de .cs-file die gegenereerd wordt door de xsd?

Voor meer informatie over .NET remoting configuration files: hoofdstuk 23, p. 1000 t/m 1005 in Professional C# van Wrox (het boek dat we in deze thread bedoelden. :)
Pagina: 1