This question is locked. New answers and comments are not allowed.
Hi, I have same problem getting Result Shape automatically from Stored Procedure editor as described in this post http://www.telerik.com/community/forums/orm/databases/error-with-retrieve-result-shape.aspx. My stored procedures also use temp table. I tried following the suggested workaround given on that other post, however on the domain model explorer I could not find option to add new Domain Method Return Shape. When I right click on that node all I get is Delete All option. What I have done is I created a new Domain Class as I already know what the stored procedure is going to return. Then I was able to use Store Procedure editor and selected persitance type as the Stored Procedure's return shape using the model I just created. All generated nicely. When I ran my app however, I received an error:
Invalid object name 'voa_keygen'. Telerik.OpenAccess.RT.sql.SQLException: Invalid object name 'voa_keygen'.
at Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.executeQuery(String sql)
at OpenAccessRuntime.Relational.sql.HighLowRelationalKeyGenerator.IsCached(Connection con, RelationalKeyGeneratorInfoCache infoCache, String tab, String kCol, String vCol, String key, Boolean& ret)
at OpenAccessRuntime.Relational.sql.HighLowRelationalKeyGenerator.init(String className, RelationalTable theClassTable, Connection con, RelationalKeyGeneratorInfoCache relationalKeyGeneratorInfoCache)
at OpenAccessRuntime.Relational.RelationalStorageManagerFactory.init(Boolean full)
My guess was this happened because I did not have primary key in my domain class model. So I went ahead and edited my result shape domain class and used one of my fields as identity which it is. Now my app returned a different error message:
Mapping the result to instances of the class 'Namespace.Object.SearchResult' failed because the required primary key column 'risk_id' is not present
The name of my identity field is RiskId which matches the field name returned by the stored procedure. I don't understand why it is looking for risk_id.
Please can someone help point out what I have done wrong? Do I need to map each field returned by stored procedure to the domain class's properties manually? When I clicked on the new Class diagram on the diagram area, the Mapping Details Editor at the bottom showed no mappings and I could not edit anything there to create new mappings.
Invalid object name 'voa_keygen'. Telerik.OpenAccess.RT.sql.SQLException: Invalid object name 'voa_keygen'.
at Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.executeQuery(String sql)
at OpenAccessRuntime.Relational.sql.HighLowRelationalKeyGenerator.IsCached(Connection con, RelationalKeyGeneratorInfoCache infoCache, String tab, String kCol, String vCol, String key, Boolean& ret)
at OpenAccessRuntime.Relational.sql.HighLowRelationalKeyGenerator.init(String className, RelationalTable theClassTable, Connection con, RelationalKeyGeneratorInfoCache relationalKeyGeneratorInfoCache)
at OpenAccessRuntime.Relational.RelationalStorageManagerFactory.init(Boolean full)
My guess was this happened because I did not have primary key in my domain class model. So I went ahead and edited my result shape domain class and used one of my fields as identity which it is. Now my app returned a different error message:
Mapping the result to instances of the class 'Namespace.Object.SearchResult' failed because the required primary key column 'risk_id' is not present
The name of my identity field is RiskId which matches the field name returned by the stored procedure. I don't understand why it is looking for risk_id.
Please can someone help point out what I have done wrong? Do I need to map each field returned by stored procedure to the domain class's properties manually? When I clicked on the new Class diagram on the diagram area, the Mapping Details Editor at the bottom showed no mappings and I could not edit anything there to create new mappings.