I'm looking into replacing our persistence layer using ADO.NET. We use
GUIDs for identity, and using the SQl provider I have no problems
using a DataSet as a cache. The column with the GUID is set as the
primary key.

However we also support Oracle. Since they don't have a GUID type, we
use raw[16], which translates to byte[] as the column data type. I
can't figure out how to find rows in the datatable based on this
column. The syntax of what I have is :

byte[] rawID = guidId.ToByteArray();

DataRow row = mgr.m_datatable.Rows.Find(rawID);

if ( row != null )
//use it
else
//get it from the database

It seems if there is anything in the table, the Find always succeeds.
I have a sneaking suspicion that the problem is something to do with
rawID.ToString() returning "byte[]" regardless of the values in the
array.

Antbody know how to make this work? Right now it's a show stopper for
us!

Thanks,
Jeff