使用Oracle pl / sql过程从关系表中获取对象

时间:2010-06-30 11:36:05

标签: c# sql oracle oracle11g odp.net

我想从oracle表中检索行并将它们转换为对象。

我目前在c#中使用refcursor结果和一个datareader来手动将行转换为对象,但这看起来很麻烦。它们是将关系表中的行转换为对象的更好方法吗?

编辑:我正在进行的项目没有使用任何ORM工具,所以不幸的是,我很少有人去做映射!

2 个答案:

答案 0 :(得分:1)

您可以使用UDT并利用新的ODP功能来获取数据。

这是入门的演练: http://www.oracle.com/technology/obe/hol08/dotnet/udt/udt_otn.htm

虽然这更详细一点: http://download.oracle.com/docs/html/E10927_01/featUDTs.htm

但真正的肉类和在Samples目录中安装ODP后,您的计算机上已经安装了土豆: %ORA_HOME%\产品\ 11.1.0 \的Client_1 \ odp.net \样品\ 2.x的\ UDT

利用UDT帮助我们起源,时间响应非常好。

答案 1 :(得分:0)

您可以使用类似NHibernateFluent NHibernateLinq To SqlEntity Framework. ORM(对象关系映射器)的ORM将数据表转换为对象。您可以指定哪个表指向哪个类,以及哪些列指向哪些成员,以及ORM将行转换为对象。它还会处理您正常的CRUD操作,因此只要您映射表格,就可以开始与它们进行交互。

编辑:如果您使用的是.Net 3.5或更高版本,则可以获得Linq To Sql和实体框架(它们包含在.Net中)。如果您不能使用ORM,那么您自己就会陷入困境(在这种情况下,是ORM)