🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #21266

Re: Enumeration w bazie danych

#21266
From: Karol
Date: Tue, 08 Dec 2009 21:09
74 lines
3010 bytes
Użytkownik "mk" <mk@nospam.com> napisał w wiadomości grup 
dyskusyjnych:hfl659$raf$1@atlantis.news.neostrada.pl...
> Witam,

Witam

> Korzystam z dostępu do danych w MSSQL za pomocą Linq. Mam tam tabelę 
> powiedzmy "województwa", która ma dwie kolumny Guid i Name i przechowuje 
> nazwy województw (16 rekordów).
>
> Nsatępnie w kodzie, żeby rozróżnić które województwo zostało wybrane robię 
> coś takiego:
>
> string strWojewodztwo = (tu jakies query);
>
> switch(strWojewodztwo)
> {
>    case "mazowieckie":
> //rob cos
> break;
>    case "malopolskie":
> //rob cos
> break;
>    case "dolnoslaskie":
> //rob cos
> break;
>    case "slaskie":
> //rob cos
> break;
>    .....
> }
>
> Wydaje mi się że nie jest to najlepszy pomysł żeby switch() orientował się 
> na podstawie wartości typu string. O wiele lepiej było by zrobić

Stringi w C# są przechowywane w "magazynie stringów", zmienna przechowuje 
tylko id z "magazynu".
Więc porównywanie stringów nie jest kosztowne, faktycznie jest to porównanie 
dwóch id. Ja bym zostawił na stringach tego switcha.


> public enum BinaryDataType
> {
>    mazowieckie,
>    malopolskie,
>    doloslaskie,
>    slaskie,
>    ....
> }
>
> Tylko jak dane z takiego enum'a sprząc z daymi w bazie?
> Chodzi o to, że w jakiejs innej tabeli zamiast Guid wojewodztwa musialbym 
> przechowywac numer zgodny z tym w enumie.

Problemy przy zmianie enuma lub bazy. Bym raczej unikał.

> P.S.
> Wojewodztwa to tylko przyklad. W rzeczywistosci bede przetrzymywal inne 
> wartosci.
>
> __________ Informacja programu ESET Smart Security, wersja bazy sygnatur 
> wirusow 4671 (20091208) __________
>
> Wiadomosc zostala sprawdzona przez program ESET Smart Security.
>
> http://www.eset.pl lub http://www.eset.com
>
> 

__________ Informacja programu ESET Smart Security, wersja bazy sygnatur wirusow 4671 (20091208) __________

Wiadomosc zostala sprawdzona przez program ESET Smart Security.

http://www.eset.pl lub http://www.eset.com 
Technical Details
Message-ID: <hfmfau$cbq$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
References: <hfl659$raf$1@atlantis.news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
From: "Karol" <karol69@op.pl>
Newsgroups: alt.pl.comp.lang.csharp
Subject: Re: Enumeration w bazie danych
Date: Tue, 8 Dec 2009 22:09:49 +0100
Organization: http://onet.pl
Lines: 77
Message-ID: <hfmfau$cbq$1@news.onet.pl>
References: <hfl659$raf$1@atlantis.news.neostrada.pl>
NNTP-Posting-Host: chello089074163246.chello.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1260306590 12666 89.74.163.246 (8 Dec 2009 21:09:50 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Tue, 8 Dec 2009 21:09:50 +0000 (UTC)
In-Reply-To: <hfl659$raf$1@atlantis.news.neostrada.pl>
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Newsreader: Microsoft Windows Live Mail 14.0.8089.726
X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8089.726
X-EsetScannerBuild: 6181
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit