erdogdum wrote:
I have the same problem with llblgen when the datasource is Oracle 10g Spatial.
This makes refreshing catalog a headache
. Any solution to that from llblgen?
I modified the Oracle 10g driver sourcecode and adding a mapping for the type "SDO_GEOMETRY" to map to "System.Byte[]". I don't know if this will work if you intend to actually supply that field data to an application, such as a GIS viewer, but I merely did this so that the designer would make that table available to map an entity to. Then I simply used the designer to remove the mapping to the Geometry field as I would not want that returned in most queries anyway--when I need that field I just use a stored proc.
To be more specific, in the Oracle 10g driver code, open the project and edit the OracleDBDriver.cs file:
In the OracleDbTypes enum, add "Geometry" just above the "AmountOfOracleDbTypes" member.
In the FillDBTypeConvertArrays() function, add the following line of code to the end of the code block that populates the DBTypesAsProviderType array:
base.DBTypesAsProviderType[(int)OracleDbTypes.Geometry] = OracleDbType.Blob.ToString();
Finally, in the String2DBType() function, add the following code to the switch statement:
case "SDO_GEOMETRY":
toReturn = (int)OracleDbTypes.Blob;
break;
Build the project, copy it to the Drivers\Oracle10g folder in the LLBLGen Pro directory (might want to make a backup of the shipped assembly first) and then restart LLBLGen Pro. You should now see the table containing the SDO_GEOMETRY column in the dialog of available tables to map entities to.
Hope that helps!