class.cs spørgsmål

Tags:    c#

Hej.
Jeg har et spørgsmål jeg håber jeg kan få hjælp med herinde.

Jeg har oprettet en class kaldet DataContext hvor jeg har alle mine sql forbindelser liggende.. På mine "almindelige sider" referer jeg til DataContext der hvor der normalt står System.Web.UI.Page og i min DataContext har jeg så skrevet,
public class DataContext : System.Web.UI.Page,
så DataContext arver fra de "almindelige sider".

Det virker uden problemer når jeg kører den på min computer, men når jeg får det op og ligge på nettet kommer denne fejl,

Compiler Error Message: CS0246: The type or namespace name 'DataContext' could not be found (are you missing a using directive or an assembly reference?)

Source Error:
Line 12: public partial class Default : DataContext


Jeg ved ikke hvorfor og håber derfor nogen herinde kan hjælpe. Jeg er ny herinde, så er ikke sikker på om der er detajler nok og sådan, men ellers skriv det bare :)

Tak på forhånd!



Indlæg senest redigeret d. 15.08.2008 12:36 af Bruger #14082
Du skal tage at designe det, så du har en database klasse, eller dataklasse - som du bare bruger på dine sider..

For mig, blander du data / logic laget sammen.

En side skal ikke indeholde DataContext egenskaber og metoder.



Du skal tage at designe det, så du har en database klasse, eller dataklasse - som du bare bruger på dine sider..

For mig, blander du data / logic laget sammen.

En side skal ikke indeholde DataContext egenskaber og metoder.


Okay, det kan godt være jeg udtrykker mig forkert.. For den klasse jeg har lavet som hedder DataContext, kunne ligeså godt hedde SQLconnections eller noget andet.. Grunden til jeg referer til DataContext i mine "alm. sider" er for at få adgang til de metoder jeg har liggende i klassen og samtidig arver jeg stadig fra System.Web.UI.Page da jeg har sat den ind i klassen..

Da den fejl så kommer om at jeg mangler et using directive eller assembly reference synes jeg det virker underligt, da det virker fint når jeg kører den selv.. Så tænkte der måske var nogen som vidste om noget skulle tilføjes når det bliver lagt op på nettet..



Indlæg senest redigeret d. 15.08.2008 13:19 af Bruger #14082
Du skal hellere lave en normal side og noget ala:

DataContext dc = new DataContext()

og tilgå egenskaber og metoder gennem dc.xxx()

Lav den så public, protected eller private efter behov...

Jeg kan ikke se hvorfor en side skal have sådanne egenskaber.



Indlæg senest redigeret d. 15.08.2008 13:33 af Bruger #5789
Du skal hellere lave en normal side og noget ala:

DataContext dc = new DataContext()

og tilgå egenskaber og metoder gennem dc.xxx()




Okay.. Det havde jeg også tænkt på at prøve, håbede bare på der var en løsning på det andet.
Men tak for svarene.. Prøver det du skrev.



Har nu prøvet det du skrev, men den siger stadig den samme fejl:

The type or namespace name 'DataContext' could not be found (are you missing a using directive or an assembly reference?)

Nogen der kan hjælpe???



Har du eventuelt nogle namespace problemer med den DataContext? Således at DataContext ikke findes i det namespace som din klasse Default findes i? Er du sikker på at det du sender op på serveren er det samme som du debugger på lokalt? Hvis din DataContext findes i en anden assembly skal den med op på serveren...

Jeg er langt hen ad vejen enig med Jokke, det er den rigtige vej at gå. Lad din sider være uafhængig af datakilde, det er kun en metode du bruger til at gemme og læse dine data fra. Det eneste dine sider skal vide er hvilke objekter den skal bruge... dvs du bevæger dig fra lag til lag i din 3 lags arkitektur:

Præsentation
|
|
Logik
|
|
Data

Det du forsøger er at lave et link fra præsentation til data, hvilket ikke er optimalt. Hvis det skal være 100% korrekt (i følge min holdning - andre er sikkert uenige) skal du lave eks. en "Bruger" klasse som så har adgang til data (så har du den rigtige vej i din arkitektur). Fra din gui/side kan du så kalde "myBruger.LoadAll();" og nede i brugerens LoadAll() metode implementerer du så det Jokke viser ovenover (jeg ville gøre det med et singleton hvis det var mig, se evt min artikel her på siden [reklame :-)]). Det synes jeg er en langt bedre arkitektur...





Ja, jeg fik vist skrevet logic laget :)

Men er også 100% enig.

Kom med dit kode, ellers kan vi nok ikke hjælpe mere :(



Indlæg senest redigeret d. 15.08.2008 13:53 af Bruger #5789
Hej igen..
Nu virker det :) Mange tak for jeres hjælp!
Det var en fejl i det jeg havde lagt op på nettet, den kunne ikke finde min App_Code mappe. Men nu er det fikset.

Hav en god dag og weekend.



t