Domanda

Una tipica procedura memorizzata nel nostro sistema accetta circa 20 parametri. Non c'è alcuna possibilità di refactoring di queste stored procedure. Ho sostanzialmente fatto ricorso alla scrittura del mio generatore di codice che racchiuda questi SP in (provider di database agnostico) " Command " oggetti, con le loro proprietà pubbliche corrispondenti ai parametri SP. Funziona, ma preferirei una soluzione collaudata di terze parti.

Qualcuno può consigliare qualcosa? Non ne ho trovato uno che supporti OleDB e stored procedure.

Modifica: ho bisogno della connettività OleDb a causa di SQL 6.5 (che ci crediate o no). ADO.NET non può connettersi a SQL 6.5. Inoltre, questa è un'applicazione .NET 2.0, quindi LinqToSql non mi è utile.

Modifica2: ho già provato nHibernate e iBatis. Nessuno dei due soddisfa i miei bisogni. L'ultima volta che ho provato nHibernate è stato necessario che SP restituisse un set di risultati. Questo non è il caso dei miei SP. Entrambi richiedono anche di specificare manualmente i parametri.

È stato utile?

Soluzione

Ho esperienza con 3 livelli ORM:

Tutti e tre sono gratuiti, supportano connessioni OleDb e procedure memorizzate.

Subsonic: questo è stato creato appositamente per le applicazioni web. Imita molto di ciò che fa Ruby On Rails. Hanno appena aggiunto le migrazioni. Subsonic è il più leggero dei tre. È un po 'più difficile da usare per Winforms, ma non è così difficile come pensavo. Viene fornito con un piacevole strumento di interfaccia utente per generare il codice e mantenere le impostazioni del database. Questo è l'unico che ha il supporto per diversi database. L'ho usato con SQLite, SQL Server CE e SQL Server.

CSLA.NET - Questo è praticamente in grado di gestire praticamente tutte le nuove e shinny tecnologie .NET. So che l'autore ha appena aggiunto il supporto per WCF, WPF e Silverlight. Questo è quello che uso quando ho bisogno di un sollevamento molto pesante con app di tipo enterprise. Ha molte caratteristiche interessanti come l'annullamento illimitato di oggetti, la possibilità di contrassegnare le raccolte come di sola lettura e la possibilità di spostare e ancorare gli oggetti ovunque tu voglia. Questo è il più vicino a ciò che JBoss fa su Java.

Livelli di rete - Non sono un grande fan, ma riuscirà a fare il lavoro. È più leggero di CSLA, ma ancora più pesante di Subsonic.

Vorrei anche menzionare NHibernate , Castle Active Record e Microsoft Enterprise Biblioteca. Non ho molta esperienza con questi però.

Altri suggerimenti

Da quello che ho sentito ADO .NET Entitry framework ha un piccolo supporto sulle procedure memorizzate ... LINQ2SQL puoi farlo funzionare ma potrebbe richiedere un qualche tipo di classe proxy ... NHibernate e IBatis è la soluzione migliore ...

Alternative:

  1. LINQ to SQL
  2. ADO.NET Entity Framework
  3. NHibernate
  4. La tua scelta)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top