2009-06-19 10 views
20

Sto utilizzando LINQ to SQL con stored procedure in SQL Server 2008. Tutto funziona bene tranne un problema. L2S non può generare il metodo per la stored procedure con il tipo di tabella definito dall'utente come parametro. firma Metodo dbml uso oggetto pannello di progettazione per il parametro di tipo invece di tipo tavolo e quando ho provato a compilare ho ottenuto l'errore:LINQ a SQL con stored procedure e parametro di tipo tabella definito dall'utente

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

C'è un modo per ovviare a questo di questo problema? Non voglio tornare al tradizionale accesso ai dati ADO.NET.

risposta

16

Non penso che ci sia nulla di disponibile in questo momento: i parametri con valori di tabella sono stati introdotti in SQL Server 2008, dopo che LINQ e LINQ2SQL erano già disponibili.

Non ho trovato alcuna menzione in alcun post del blog sul supporto per i parametri con valori di tabella in LINQ2SQL in .NET 4.0 finora.

UPDATE:
Ecco un blog post by Damien Guard sulle correzioni e miglioramenti per LINQ to SQL nel lasso di tempo di .NET 4.0.

UPDATE 2:
Purtroppo, secondo Damien, questa funzione non è supportata in .NET 3.5, e non sarà supportato in .NET 4.0 sia :-(

non può essere fatto in 3.5 o 4.0 in questo momento
:([) Amien

+0

Avete informazioni nuova funzionalità (se presente) in L2S in .NET4.0? –

+0

Interessante. C'è una luce alla fine del tunnel. LINQ to SQL è vivo. Grande. Grazie. –

+0

Questa risposta mi uccide :(No, non è colpa tua marc_s :) ... un compagno e io voglio fare L2S + TVP oggi e pianto quando pensavamo di essere così vicini a una soluzione killer :) Torna a ole ADO .NET per questa piccola parte delle nostre applicazioni. –

4

sono capitato in questo post che fornisce un mezzo di indizione stored procedure con parametri TVP da Linq2Sql. Si tratta di una rotonda metodo che crea in pratica un extensi classe parziale sul tuo dataContext e passa un dataTable usando un SqlCommand. Spero possa essere d'aiuto.

+0

Mi ha aiutato! Molte grazie! – digaomatias

0

Ho avuto lo stesso identico problema e il codice di esempio di Ryan Prechel dal seguente collegamento mi ha aiutato a risolvere il problema.

How to pass table value parameters to stored procedure from .net code

+1

Sebbene ciò possa teoricamente rispondere alla domanda, [sarebbe preferibile] (// meta.stackoverflow.com/q/8259) includere qui le parti essenziali della risposta e fornire il link per riferimento. –

Problemi correlati