Jak zaktualizować plik Linq do pliku SQL dbml?
Jak zaktualizować Linq do SQL .plik dbml?
7 answers
Istnieją trzy sposoby synchronizacji modelu.
-
Usuń zmodyfikowane tabele z projektanta i przeciągnij je z powrotem na powierzchnię projektanta z Eksploratora bazy danych. Odkryłem, że aby to działało niezawodnie, trzeba:
A. odśwież schemat bazy danych w Eksploratorze bazy danych (kliknij prawym przyciskiem myszy, odśwież)
b. Zapisz projektanta po usunięciu tabel
C. Zapisz ponownie po przeciągnięciu tabel z powrotem.Uwaga chociaż, że jeśli zmodyfikowałeś dowolne właściwości (na przykład, wyłączając właściwość potomną skojarzenia), to oczywiście straci te modyfikacje - będziesz musiał je ponownie wprowadzić.
Użyj SQLMetal do regeneracji schematu z bazy danych. Widziałem wiele postów na blogu, które pokazują Jak to napisać.
Dokonuj zmian bezpośrednio w panelu Właściwości DBML. Działa to dla prostych zmian, takich jak zezwalanie na NULL na pole.
DBML designer nie jest domyślnie zainstalowany w Visual Studio 2015 lub Visual Studio 2017. Będziesz musiał zamknąć VS, uruchomić instalator VS i zmodyfikować instalację. Należy zainstalować narzędzie LINQ to SQL tools.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-23 05:27:08
Aby zaktualizować tabelę w Twoim .dbml-diagram z np. dodanymi kolumnami, zrób to:
- zaktualizuj okno Eksploratora SQL Server.
- Przeciągnij" nową " wersję tabeli do .dbml-diagram (raport1 na obrazku poniżej).
- Zaznacz dodane kolumny w nowej wersji tabeli, naciśnij Ctrl+C aby skopiować dodane kolumny.
- Kliknij "starą" wersję tabela i naciśnij Ctrl+V aby wkleić dodane kolumny do już obecnej wersji tabeli.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-02 15:16:17
Możesz również sprawdzić PLINQO Zestaw szablonów generowania kodu, opartych na CodeSmith, które pozwalają na wiele fajnych rzeczy dla I z Linq-to-SQL:
- generowanie jednego pliku na klasę (zamiast pojedynczego, ogromnego pliku)
- Zaktualizuj swój model w razie potrzeby
- wiele innych funkcji
Sprawdź stronę PLINQO na http://www.plinqo.com [2]} i zerknij na filmiki z intro.
Drugim narzędziem jakie znam są Huagati Narzędzia DBML / EDMX, które umożliwiają aktualizację plików mapowania DBML (Linq-to-SQL) i EDMX (Entity Framework) i innych (np. konwencje nazewnictwa itp.).
Marc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-10 16:08:45
Używamy niestandardowego szablonu T4, który dynamicznie zapytuje model information_schema dla każdej tabeli we wszystkich naszych .Plików DBML, a następnie nadpisuje części .Plik DBML ze świeżymi informacjami o schemacie z bazy danych. I wysoce zalecam wdrożenie takiego rozwiązania - zaoszczędziło mi to mnóstwo czasu, a w przeciwieństwie do usuwania i ponownego dodawania tabel do modelu, możesz zachować swoje skojarzenia. Dzięki temu rozwiązaniu pojawią się błędy w czasie kompilacji, gdy zmieni się twój schemat. Chcesz się upewnić, że używasz systemu kontroli wersji, ponieważ różnicowanie jest naprawdę przydatne. Jest to świetne rozwiązanie, które działa dobrze, jeśli rozwijasz się z pierwszym podejściem schematu DB. Oczywiście, nie mogę udostępnić kodu mojej firmy, więc jesteś zdany na siebie, że sam to napiszesz. Ale jeśli znasz jakiś Linq-to-XML i możesz iść do szkoły w tym projekcie , Możesz dostać się tam, gdzie chcesz być.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-28 13:49:35
Zalecałbym użycie Visual designera wbudowanego w VS2008, ponieważ aktualizacja dbml aktualizuje również kod, który jest generowany dla Ciebie. Modyfikowanie dbml poza visual designerem spowodowałoby, że kod bazowy nie będzie zsynchronizowany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-10 15:20:31
Istnieje niuans w aktualizacji tabel, a następnie aktualizacji DBML... Relacje klucza obcego nie zawsze są natychmiast przenoszone, jeśli zmiany są wprowadzane do istniejących tabel. Obejście polega na zbudowaniu projektu, a następnie ponownym dodaniu tabel. Zgłosiłem to do MS i jest naprawiane dla VS2010.
DBML display nie pokazuje nowych ograniczeń klucza obcego
Zwróć uwagę, że instrukcje podane w głównej odpowiedzi nie są jasne. Aby zaktualizować tabela
- Otwórz powierzchnię projektową dbml
- Zaznacz wszystkie tabele prawym przyciskiem myszy - > kliknij - > Wybierz wszystkie lub CTRLa
- CTRLx (Cut)
- CTRLv (Wklej)
- Zapisz i Odbuduj rozwiązanie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-14 12:29:17
W przypadku aktualizacji procedury składowanej należy ją usunąć z .plik dbml i włóż go ponownie. Ale jeśli procedura składowana ma dwie ścieżki (np.: jeśli coś; wyświetla niektóre kolumny; w przeciwnym razie wyświetla inne kolumny), upewnij się, że obie ścieżki mają te same aliasy kolumn!!! W przeciwnym razie będą istnieć tylko pierwsze kolumny ścieżki.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-04 21:02:57