Avatar billede joki Juniormester
17. maj 2016 - 08:54 Der er 5 kommentarer og
1 løsning

Overskrive egenskab

Hej

Jeg har nedenstående

- Model library med base classes  ~ til read only tabeller i db
Denne indeholder Icollection property med anden base class

- Model library til konkret applikation som arver fra base class
I den nedarvede klasse har jeg tilføjet yderligere property med data fra tabeller hvor jeg har adgang til read/write

Problemet er at jeg gerne vil kunne overskrive property i den nedarvede klasse som skal returnere Icollection fra anden nedarvet klasse. Jeg benytter EF
Avatar billede arne_v Ekspert
17. maj 2016 - 20:15 #1
Hvis du vil override den property maa den ihvertfald skulle erklaeres virtual.

EF kan ikke finde ud af det?

Bruger du database, code eller model first?
Avatar billede joki Juniormester
20. maj 2016 - 19:57 #2
Jeg kan ikke faa det til at fungere I ef. Hvad er best practice hvis jeg har et model library I et project og vil genbruge dette I andre projeker men har yderlige properties som skal tilfoejes klasserne I de konkrete projekter.
Avatar billede arne_v Ekspert
29. maj 2016 - 02:29 #3
Normalt vil jeg tro at man ville have en enkelt klasse med alle properties som der faktisk er i tabellen.

Og saa har man to muligheder:

- den simple hvor de forskellige projekter bruger klassen og ignorerer de properties de ikke skal bruge

(ja det er lidt primitivt men KISS, YAGNI og alt det der)

- lege lidt med interfaces maaske noget a la dette

interface IBaseData
interface IProject1Data : IBaseData
interface IProject2Data : IBaseData
interface IProject3Data : IBaseData
class Data : IBaseData, IProject1Data, IProject2Data, IProject3Data
class BaseDAL
    Data Get() { ... }
    void Put(Data o) { ... }
class Project1DAL
    private BaseDAL real;
    IProject1Data Get() { return real.Get(); }
    void Put(IProject1Data o) { real.Put(o); }
etc.
Avatar billede joki Juniormester
02. juni 2016 - 07:18 #4
Tak smid bare et svar
Avatar billede arne_v Ekspert
02. juni 2016 - 15:30 #5
Den nye udgave af eksperten.dk opererer ikke med begrebet svar. Du kan acceptere et hvilket som helst indlaeg som et svar.
Avatar billede arne_v Ekspert
13. juni 2016 - 15:55 #6
Sig til hvis du vil have #3 uddybet. Den er lidt kortfattet.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester