Hi, I am trying to get the following to work without much success:
This class is read from file and compiled in memory:
using System;
using Castle.ActiveRecord;
using iTradeStorage.ValueObjects;
namespace iTradeStorage.ValueObjects
{
[ActiveRecord]
public class iTradeType1 : ActiveRecordBase
{
[PrimaryKey]
public string Identifier { get; set; }
[Property]
public String Col1 { get; set; }
[Property]
public DateTime Col2 { get; set; }
}
}
A table existe in the db that matches this class. (created using
UpdateSchema())
I then try to save an object, the following way:
Type type = _typeManager.GetType(typeVo); //return the
type iTradeType1
object theObject = Activator.CreateInstance(type);
PropertyInfo[] pis = type.GetProperties();
Dictionary<string, PropertyInfo> propertyInfosPerName =
new Dictionary<string, PropertyInfo>();
foreach (PropertyInfo propertyInfo in pis)
{
//PropertyAttributes pas = propertyInfo.Attributes;
propertyInfosPerName.Add(propertyInfo.Name,
propertyInfo);
}
string id = "thisisatest";
propertyInfosPerName["Identifier"].SetValue(theObject, id,
null);
propertyInfosPerName["Col1"].SetValue(theObject,
"col1ValTest", null);
propertyInfosPerName["Col2"].SetValue(theObject,
DateTime.Now, null);
((ActiveRecordBase)theObject).Save();
and get the following exception:
{"Could not perform Save for iTradeType1"}
Inner ex: {"Exception occurred getter of
Rbs.Gbm.Sgi.iTradeStorage.ValueObjects.iTradeType1.Identifier"}
Innder ex: {"Object does not match target type."}
at Castle.ActiveRecord.ActiveRecordBase.InternalSave(Object
instance, Boolean flush) in c:\TeamCity\buildAgent\work
\e41ee5ead2eba140\src\Castle.ActiveRecord\Framework
\ActiveRecordBase.cs:line 601
at Castle.ActiveRecord.ActiveRecordBase.Save(Object instance) in c:
\TeamCity\buildAgent\work\e41ee5ead2eba140\src\Castle.ActiveRecord
\Framework\ActiveRecordBase.cs:line 510
at Castle.ActiveRecord.ActiveRecordBase.Save() in c:\TeamCity
\buildAgent\work\e41ee5ead2eba140\src\Castle.ActiveRecord\Framework
\ActiveRecordBase.cs:line 1547
at
Rbs.Gbm.Sgi.iTradeStorage.ObjectManagement.ObjectManager.StoreObject(String
objectXml) in C:\Development\Rbs.Gbm.Sgi\iTradeStorage\ObjectManagement
\ObjectManager.cs:line 58
at ObjectManagementTests.ObjectManagerTests.StoreObjectTest() in C:
\Development\Rbs.Gbm.Sgi\iTradeStorage\Tests\ObjectManagementTests
\ObjectManagerTests.cs:line 78
Can somebody kindly help?
I'd like to try and debug the active record source code but can't seem
to find it. Where canI get ahold of it?
Thanks.
--
You received this message because you are subscribed to the Google Groups
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/castle-project-users?hl=en.