This question is locked. New answers and comments are not allowed.
Hi,
I'm trying to write a module that able to rollback the transaction when one of the strored procedure failed. The code below is one of the example:
Database database = Database.Get("DBSample");
database.Properties.TransactionProvider = TransactionProvider.TransactionScope;
using (IObjectScope scope = database.GetObjectScope())
{
// Transaction to modify object
using (TransactionScope txnScop = new TransactionScope())
{
using (MyDBContext dbContext = new MyDBContext())
{
object[] result =dbContext.Add_SalaryStoreProc("EmployeeName","1000");
object[] result =dbContext.Add_AnnualIncome("EmployeeName","1000");
}
txnScop.Complete();
}
}
}
I get the following exception:
{Telerik.OpenAccess.OpenAccessException: No metadata has been registered for class Salary. (This usually indicates, that either this class is not declared persistent or it is declared persistent but not enhanced. The class was loaded from file:///E:/Project/HR/Code/HR/bin/HR.DLL.)
at Telerik.OpenAccess.RT.PersistentClassesRegistry.GetMeta(Object name, Type t)
at Telerik.OpenAccess.RT.PersistentClassesRegistry.GetMeta(Type pcClass)
at Telerik.OpenAccess.RT.PersistentClassesRegistry.GetFields(Type pcClass)
at Telerik.OpenAccess.SPI.ConfigCollector.CreateClassConfig(Type type, PersistentAttribute pAttr)
at Telerik.OpenAccess.SPI.ConfigCollector.ProcessAssembly(Assembly inputAssembly2)
at Telerik.OpenAccess.SPI.ConfigCollector.Collect(IConfigBuilder cBuilder, IAssemblyProvider asmLoader, Hashtable alreadyProcessed, Boolean collectReferences)
at Telerik.OpenAccess.SPI.ConfigCollector.Collect(IConfigBuilder cBuilder, IAssemblyProvider asmLoader, Boolean collectReferences)
at Telerik.OpenAccess.RT.DatabaseAdapter.GetPersistentClassesConfig(ConfigManager configManager, List`1 jdoRootsArrayList)
at Telerik.OpenAccess.RT.DatabaseAdapter.AssertPersistenceManagerFactory(String usr, String password, Boolean open)
at Telerik.OpenAccess.RT.DatabaseAdapter.GetObjectScope(TransactionProvider provider)
at Telerik.OpenAccess.RT.DatabaseAdapter.Telerik.OpenAccess.SPI.IDatabaseAdapter.GetObjectScope()
at Telerik.OpenAccess.Database.GetObjectScope()
Does OpenAccess support rollback for stored procedure?
I'm trying to write a module that able to rollback the transaction when one of the strored procedure failed. The code below is one of the example:
Database database = Database.Get("DBSample");
database.Properties.TransactionProvider = TransactionProvider.TransactionScope;
using (IObjectScope scope = database.GetObjectScope())
{
// Transaction to modify object
using (TransactionScope txnScop = new TransactionScope())
{
using (MyDBContext dbContext = new MyDBContext())
{
object[] result =dbContext.Add_SalaryStoreProc("EmployeeName","1000");
object[] result =dbContext.Add_AnnualIncome("EmployeeName","1000");
}
txnScop.Complete();
}
}
}
I get the following exception:
{Telerik.OpenAccess.OpenAccessException: No metadata has been registered for class Salary. (This usually indicates, that either this class is not declared persistent or it is declared persistent but not enhanced. The class was loaded from file:///E:/Project/HR/Code/HR/bin/HR.DLL.)
at Telerik.OpenAccess.RT.PersistentClassesRegistry.GetMeta(Object name, Type t)
at Telerik.OpenAccess.RT.PersistentClassesRegistry.GetMeta(Type pcClass)
at Telerik.OpenAccess.RT.PersistentClassesRegistry.GetFields(Type pcClass)
at Telerik.OpenAccess.SPI.ConfigCollector.CreateClassConfig(Type type, PersistentAttribute pAttr)
at Telerik.OpenAccess.SPI.ConfigCollector.ProcessAssembly(Assembly inputAssembly2)
at Telerik.OpenAccess.SPI.ConfigCollector.Collect(IConfigBuilder cBuilder, IAssemblyProvider asmLoader, Hashtable alreadyProcessed, Boolean collectReferences)
at Telerik.OpenAccess.SPI.ConfigCollector.Collect(IConfigBuilder cBuilder, IAssemblyProvider asmLoader, Boolean collectReferences)
at Telerik.OpenAccess.RT.DatabaseAdapter.GetPersistentClassesConfig(ConfigManager configManager, List`1 jdoRootsArrayList)
at Telerik.OpenAccess.RT.DatabaseAdapter.AssertPersistenceManagerFactory(String usr, String password, Boolean open)
at Telerik.OpenAccess.RT.DatabaseAdapter.GetObjectScope(TransactionProvider provider)
at Telerik.OpenAccess.RT.DatabaseAdapter.Telerik.OpenAccess.SPI.IDatabaseAdapter.GetObjectScope()
at Telerik.OpenAccess.Database.GetObjectScope()
Does OpenAccess support rollback for stored procedure?