2010-06-30 2 views
0

Je souhaite récupérer des lignes d'une table Oracle et les convertir en objets.Obtention d'objets à partir d'une table relationnelle avec la procédure Oracle pl/sql

J'utilise actuellement un résultat de refcursor et un lecteur de données en C# pour convertir manuellement les lignes en objets, mais cela semble désordonné. Est-ce leur meilleur moyen de convertir des lignes d'une table relationnelle en objets?

EDIT: Le projet sur lequel je travaille n'utilise pas d'outils ORM donc malheureusement, il ne m'appartient pas de faire le mapping!

+0

Pour clarification: Je présume que vous ne cherchez pas une solution qui implique le mappage des types SQL aux objets C#? Ou es-tu? – APC

+0

Je souhaite convertir des lignes d'une table relationnelle en objets C# représentatifs. Je suis très heureux d'utiliser les types définis par l'utilisateur Oracle si cela est nécessaire. – haymansfield

Répondre

1

Vous pouvez utiliser des UDT et utiliser la nouvelle fonctionnalité ODP pour obtenir les données.

c'est une procédure pas à pas sur la mise en route: http://www.oracle.com/technology/obe/hol08/dotnet/udt/udt_otn.htm

tout cela est un peu plus détaillée: http://download.oracle.com/docs/html/E10927_01/featUDTs.htm

mais les pommes de terre de la vraie viande & sont déjà installés sur votre ordinateur après avoir installé ODP dans le Répertoire des exemples: % ORA_HOME% \ product \ 11.1.0 \ client_1 \ odp.net \ samples \ 2.x \ UDT

L'utilisation des UDT a contribué à notre origine et la réponse est excellente.

0

Vous pouvez utiliser un ORM comme NHibernate, Fluent NHibernate, Linq To Sql ou Entity Framework. ORM (Object Relational cartographes) existent pour transformer datatables en objets. Vous spécifiez quelle table pointe vers quelle classe, avec quelles colonnes pointent vers quels membres, et l'ORM va convertir les lignes en objets. Ils prennent également soin de vos opérations CRUD normales, de sorte que dès que vous mappez les tables, vous pouvez commencer à interagir avec eux.

Édition: Si vous utilisez .Net 3.5 ou version ultérieure, vous obtenez Linq To Sql et Entity Framework (ils sont inclus dans .Net). Si vous ne pouvez pas utiliser un ORM, vous êtes coincé en train de faire le casting vous-même ( vous êtes le ORM dans ce cas)

+0

Malheureusement, le projet im on n'utilise aucun de ces outils, donc c'est à moi. – haymansfield

Questions connexes