2008-11-14 10 views
6

Odziedziczyłem dość dużą aplikację, która naprawdę mogłaby skorzystać z czyszczenia. W aplikacji jest zaśmiecony kod dostępu do danych. W kodzie źródłowym, niektóre w klasach logiki biznesowej, niektóre wbudowane w klasyczne strony asp.Automatyczne tworzenie klas C# związanych z procedurami przechowywanymi

Chciałbym zmienić kod, usuwając cały kod dostępu do danych na kilka klas DAL.

Cały dostęp do danych odbywa się za pomocą procedur przechowywanych (Microsoft SQL 2000). Jest ich 300-400.

Wygląda na to, że powinien istnieć automatyczny sposób analizy procedur składowania i automatycznego generowania metod C# dla każdego z nich, odwzorowując parametry metody na parametry procedury składowanej, zwracając metodę datatable.

Nie mam żadnego doświadczenia z produktami ORM, i nie jestem pewien, czy to, czego szukam, to całkowicie ORM, czy tylko narzędzie innej firmy, które pomoże wygenerować proste opakowania wokół wywołań sp .

Odpowiedz

2

Jeśli masz dostęp do .NET Framework 3.5 i LINQ to SQL, można to zrobić bardzo łatwo sprawdzić ten film:

LINQ to SQL: Using Stored Procedures

Korzystanie z istniejących procedur przechowywanych i funkcji jest prosta LINQ. Po prostu przeciągamy zapisane procedury na powierzchnię mapowania O/R i wywołujemy je z wygenerowanego obiektu Kontekstu.

2

Polecam, proszę, złapać Code Smith. Produkt zawiera szablon dla ORM i w pełni obsługuje generowanie klas ze schematów DB (i myślę, że Procs). Następnie możesz Code Gen wszystkie obiekty, których potrzebujesz.

Inną opcją byłoby użycie LINQ do SQL.

0

przeciąganie procedur przechowywanych na powierzchni projektowej zestaw danych (w .NET 2.0 i wyższe) generuje funkcję owijania

ale jeśli masz dużo z nich zrobić, może być lepiej wyłączyć za pomocą lub pisanie prosty generator kodu

dwie opcje to:

  1. wygenerować kod zawijania siebie jako C# klas/metod
  2. wygenerować plik dataset.xsd następnie otworzyć go w visual studio i niech projektant generowania klas/metod ty

ten ostatni może być utrzymana poprzez powierzchnię projektu zestawu danych, ale może być trudne, aby generowane prawo (po raz pierwszy)

1

Moje podejście byłoby Najpierw myśl na wyższym poziomie - stwórz klasy i metody dostępu do danych w najlepszy możliwy sposób, aby dopasować swoje potrzeby do istniejącej lub nowej bazy kodu. Następnie użyj istniejących wywołań procedur dla twoich nowych obiektów.

Nie sądzę, że należy rozważyć jakąkolwiek formę masowej automatyzacji dla tego zadania.

0

Podobna do sugestii Roberta, napisaliśmy własną wersję Code Smith.

Nasz "generator kodów" składa się z dwóch części: SQL & Klasy.

SQL: Wygeneruje aktualizację, wybierz & Usuń zapisane proc.

C#: wygeneruje klas i zapisz plik jako .cs

Nazywamy: sp_MShelpcolumns „nazwa_tabeli”, aby uzyskać listę pól i typów danych, a następnie wykonaj zastąpić.

nie jest to idealne rozwiązanie, ale jest bardzo skuteczny do uzyskania pierwszego 80% zakończone

Powiązane problemy