Udostępnij za pośrednictwem


Mapowanie niestandardowego typu SQL CLR

Mapowanie typów między programem SQL Server i środowiskiem uruchomieniowym języka wspólnego (CLR) jest automatycznie określane podczas korzystania z narzędzia wiersza polecenia SQLMetal, Projektant relacyjnych obiektów (O/R Projektant).

Gdy nie zostanie wykonane żadne niestandardowe mapowanie, te narzędzia przypisują domyślne mapowania typów zgodnie z opisem w temacie MAPowanie typów SQL-CLR. Jeśli chcesz wpisywać mapowania inaczej niż te wartości domyślne, musisz wykonać pewne dostosowania mapowań typów.

Podczas dostosowywania mapowań typów zalecane jest wprowadzenie zmian w pośrednim pliku DBML. Następnie niestandardowy plik DBML powinien być używany podczas tworzenia kodu i mapowania plików za pomocą Projektant SQLMetal lub O/R.

Po utworzeniu DataContext wystąpienia obiektu z kodu i plików DataContext.CreateDatabase mapowania metoda tworzy bazę danych na podstawie mapowań typów, które są określone. Jeśli w mapowaniach nie określono atrybutów CLR type , zostaną użyte domyślne mapowania typów.

Dostosowywanie za pomocą Projektant SQLMetal lub O/R

Za pomocą Projektant SQLMetal i O/R można automatycznie utworzyć model obiektów zawierający informacje o mapowaniu typów wewnątrz pliku kodu lub poza nim. Ponieważ te pliki są zastępowane przez Projektant SQLMetal lub O/R, przy każdym ponownym utworzeniu mapowań zalecane jest określenie mapowań typów niestandardowych w celu dostosowania pliku DBML.

Aby dostosować mapowania typów za pomocą Projektant SQLMetal lub O/R, najpierw wygeneruj plik DBML. Następnie przed wygenerowaniem pliku kodu lub pliku mapowania zmodyfikuj plik DBML, aby zidentyfikować mapowania żądanego typu. W programie SQLMetal należy ręcznie zmienić Type atrybuty i DbType w pliku DBML, aby dostosować mapowanie typów. Za pomocą Projektant O/R możesz wprowadzić zmiany w Projektant. Aby uzyskać więcej informacji na temat korzystania z Projektant O/R, zobacz LINQ to SQL Tools in Visual Studio (Narzędzia LINQ to SQL Tools w programie Visual Studio).

Uwaga

Niektóre mapowania typów mogą powodować przepełnienie lub wyjątki utraty danych podczas tłumaczenia na bazę danych lub z bazy danych. Przed wprowadzeniem wszelkich dostosowań dokładnie przejrzyj macierz zachowania mapowania typu w czasie wykonywania w mapowaniu typu SQL-CLR.

Aby dostosowania mapowania typów były rozpoznawane przez Projektant SQLMetal lub O/R, należy upewnić się, że te narzędzia są dostarczane ze ścieżką do niestandardowego pliku DBML podczas generowania pliku kodu lub pliku mapowania zewnętrznego. Mimo że nie jest to wymagane w przypadku dostosowywania mapowania typów, zaleca się, aby zawsze oddzielić informacje o mapowaniu typu od pliku kodu i wygenerować dodatkowy plik mapowania typów zewnętrznych. Spowoduje to pozostawienie pewnej elastyczności, nie wymagając ponownego skompilowanego pliku kodu.

Dołączanie zmian bazy danych

Po zmianie bazy danych należy zaktualizować plik DBML w celu odzwierciedlenia tych zmian. Jednym ze sposobów wykonania tej czynności jest automatyczne utworzenie nowego pliku DBML, a następnie ponowne wykonanie dostosowań mapowania typów. Alternatywnie można porównać różnice między nowym plikiem DBML a dostosowanym plikiem DBML i ręcznie zaktualizować niestandardowy plik DBML, aby odzwierciedlić zmianę bazy danych.

Zobacz też