Identyczne klasy w innych namespaceach

0

Cześć mam w różnych namepspaceach dwie identyczne tabele Entity korzystające z tego samego źródła.

Moje entity nazywają się student i są w różnych przestrzeniach nazw:

Projekt1.Student student1= new Projekt1.Student();
Projekt2.Student student2= new Projekt2.Student();

I chciałabym użyć później Projekt2.Student jak Projekt1.Student, bo przecież są identyczne, tylko to nie zadziała.

(Projekt2.Student)student1;

Gdyby to była zwykła klasa to jakieś rzutowanie jawne bym zrobiła ze słówkiem explicit. Ale tutaj obiekty tworzy się jakoś dziwnie bo bezpośrednio z modelu danych (entity) i nie ma gdzie kodu wpisać.

0

Dostałam się do kodu, ale nie wiem co zrobić dalej. Mogłabym tworzyć poprzez new nowy obiekt i tylko w konstruktor dodać pola obiektu, ale wtedy się tworzy nowy obiekt, a tego nie chcemy, bo wszystko tu działa na bazie danych.

0

Nie ma chyba innego sposobu, jak zrobić nowy obiekt. Mimo że te klasy są takie same, to nie można traktować ich tak samo.

0

Nie możesz tak zmodyfikować aplikację, aby mieć jedną klasę?

A jeśli nie, to zainteresuj się czymś takim jak ValueInjecter albo AutoMapper - te biblioteki pozwalają łatwo przepisywać wartości z jednego obiektu do drugiego na podstawie ich nazw.

0

No właśnie nie mogę mieć tylko jednej klasy.

Dobrze gadasz, tylko nie o to mi chyba chodzi. Pola jednego obiektu, dzięki temu przypiszę do innego, ale wtedy będę miał już inny obiekt.
A może coś mi umknęło?

0

Tak, oczywiście, że będziesz miała inny obiekt innej klasy.
Co Ty tak naprawdę chcesz osiągnąć? Dlaczego chcesz z jednego obiektu zrobić inny?

1

C# traktuje osobne klasy jako osobne klasy.
Nie ma znaczenia czy mają te same pola, te same metody, czy nazywają się tak samo – jeśli definicja jest osobna, to typ jest osobny.

0

jesli te klasy sa identyczne to dlaczego nie skorzystasz z polimorfizmu?

1 użytkowników online, w tym zalogowanych: 0, gości: 1