2009-06-19 8 views
20

Używam LINQ do SQL z procedurami przechowywanymi w SQL Server 2008. Wszystko działa dobrze oprócz jednego problemu. L2S nie może wygenerować metody dla procedury składowanej z zdefiniowanym przez użytkownika typem tabeli jako parametrem. Metoda podpis w dbml panelu projektu za pomocą obiektu dla parametru typu zamiast typu tabeli i kiedy próbowałem skompilować mam błąd:LINQ do SQL z procedurami przechowywanymi i zdefiniowanym przez użytkownika parametrem typu tabeli

Error: DBML1005: Mapping between DbType 'Structured' and 
Type 'System.Object' in Parameter 'ParaName' of Function 'dbo.StoredProcName' 
is not supported. 

Czy istnieje sposób, aby obejść ten problem? Nie chcę wracać do tradycyjnego dostępu do danych ADO.NET.

Odpowiedz

16

Nie sądzę, że w tej chwili jest coś dostępnego - parametry z tabelami zostały wprowadzone w SQL Server 2008 - już po LINQ i LINQ2SQL.

Nie znalazłem żadnej wzmianki w żadnym z postów na blogu o obsłudze parametrów o wartości tabelarycznej w LINQ2SQL w .NET 4.0 do tej pory.

UPDATE:
Oto blog post by Damien Guard na poprawki i ulepszenia dla LINQ-to-SQL w przedziale czasowym .NET 4.0.

UPDATE 2:
Niestety, według Damiana, ta funkcja nie jest obsługiwana w .NET 3.5, i nie będą obsługiwane w .NET 4.0 albo :-(

nie może być odbywa się w 3,5 lub 4,0 teraz
:([) amien

+0

Czy macie jakieś informacje na temat nowej funkcji (jeśli w ogóle) w L2S w .NET4.0? –

+0

Interesujące. Na końcu tunelu jest światło. LINQ do SQL jest żywy. Wspaniały. Dzięki. –

+0

Ta odpowiedź mnie zabija :(Nie, to nie twoja wina marc_s :) ... kumpel i chcę dzisiaj zrobić L2S + TVP i płakać, gdy myśleliśmy, że jesteśmy tak blisko rozwiązania zabójcy :) Back to ole ADO .NET dla tej jednej niewielkiej części naszych aplikacji. –

4

ja się stało na to post który zapewnia środki do wywoływania procedur składowanych z parametrami TVP z linq2sql. jest to runda o metody, która w zasadzie tworzy częściowej klasy extensi z twojego dataContext i przekazuje dane za pomocą SqlCommand. Mam nadzieję, że to pomoże.

+0

Pomogło mi to! Wielkie dzięki! – digaomatias

Powiązane problemy