18

Próbuję wykonać proste wywołanie procedury składowanej bazy danych z aplikacji języka C#.Nie można przeciągnąć procedury przechowywanej do projektanta DBML

Obserwuję przewodnika jak np this one lub this one.

Oba mają te same podstawowe kroki.

  1. Dodaj LINQ do elementu zapytania SQL .dbml do mojego projektu
  2. połączyć się z bazą danych w Server Explorer
  3. Drag procedurę przechowywaną z Eksploratora serwera na moim oknie projektanta .dbml

Ale krok 3 nie działa. Mam moją zapisaną procedurę i moje okno projektanta, ale nie mogę przeciągnąć sproc. Nie otrzymuję znaku plusa ani znaku "niedozwolony". To po prostu obiekt nie do ciągnięcia.

Nie mogę znaleźć innego sposobu dodania sproc do pliku .dbml. I nie mogę znaleźć nikogo, kto miałby ten problem. Każde źródło mówi po prostu, żeby to przeciągnąć.

Co mogę tu robić źle?

Zrzut ekranu:

enter image description here

+0

@Andomar Wysłałem to, co widzę. Nie wiem, jak uchwycić kursor. PrintScreen nie wydaje się go przechwytywać i nie sądzę, żebym mógł to zrobić za pomocą Snipping Tool. Bez względu na to, tak naprawdę nic nie pokazywałoby, ponieważ nie mogę przeciągnąć nigdzie nigdzie. Wygląda na to, że mój kursor unosi się nad oknem .dbml, ale w rzeczywistości klikam i przeciągam. –

+0

Dokładnie tak wygląda mój ekran. Dla mnie działa, nawet jeśli plik DBML jest tylko do odczytu. Czy jesteś zalogowany lokalnie? Czy zarówno Ty, jak i VS działasz pod tym samym kontem administratora? – Andomar

+0

Tak, jestem zalogowany lokalnie, a usługa VS działa na tym samym koncie. Jestem również połączony ze zdalnym serwerem SQL przy użyciu tych samych poświadczeń systemu Windows. –

Odpowiedz

19

Okazuje się, że rozwiązanie było to, że miałem zły wersji .dll dla Visual Studio.

Zauważyłem, że otrzymywałem wyjątki podczas wykonywania akcji w programie Server Explorer. Googlowania wyjątki doprowadziły do ​​this question co wskazuje na to dll

C:\Program Files (x86)\Common Files\microsoft shared\Visual Database Tools\dsref80.dll 

jako problem.

Zastąpiłem go odpowiednią kopią od jednego z moich kolegów z drużyny i teraz działa poprawnie.

+0

Dla mnie był to plik w wersji 11.0.50214.1 z Microsoft Visual Studio Beta 11. Odinstalowałem go, ale nie przywrócił tego pliku. Zastąpienie go wersją 10.0.30319.1 z Microsoft Visual Studio 2010 (mam SP1, nie wiem, czy to jest to samo, co bez SP1) działało. – casperOne

+0

@casperOne Dla mnie również. Powinienem użyć obrazu do wersji beta, ale ufałem, że odinstalowanie będzie czyste. W katalogu Microsoft Shared jest sporo rzeczy, które powinny zostać przywrócone i nie było po odinstalowaniu Visual Studio 11. –

+0

Czy to nie zawsze jest nasz upadek? Powinniśmy stworzyć obraz dla * beta * oprogramowania, a my nie? =) – casperOne

3

Zainstalowałem również wersję VS 11 Beta i projektant działał poprawnie, dopóki jej nie odinstalowałem. Musiałem usunąć bibliotekę DLL ręcznie w powyższej lokalizacji i naprawić instalację, znajdując Visual Studio 2010 w Programy i funkcje i wybierając Odinstaluj/Zmień, a następnie Napraw. Instalator zastąpi plik DLL, który został usunięty z poprawną wersją.

2

Dla każdego, kto może przeciągnąć sproc, ale nie widzi wyniku (sproc po prostu nie pojawia się w panelu funkcji): upewnij się, że sproc zwraca tylko typy danych, które L2S rozumie. Na przykład nie można zwrócić pola geography.

+0

mój sp nie zwraca niczego, zamiast tego nie pojawi się w panelu funkcji ... – Franziee

0

Edycja plików .dbml z powierzchnią projektanta wymaga narzędzi LINQ do SQL, które nie są instalowane domyślnie jako część żadnego obciążenia programu Visual Studio 2017. Można je zainstalować, wybierając element "LINQ to SQL tools" w kategorii "Narzędzia kodów" na karcie "Poszczególne komponenty" instalatora Visual Studio.

Powiązane problemy