Try removing the ColumnType="AnsiChar" from the Username property
mapping. AnsiChar is intended for System.Char, not strings.
Also, you usually don't need to specify every ColumnType, just let
ActiveRecord/NH infer it for you.

On Mar 16, 5:01 pm, bambam <[email protected]> wrote:
> Hello everyone, this is my first post and I apologize in advance if
> you have posts on this subject, for I am trying out active record to
> evaluate its use in our organization.
>
> The error I receive is "Could not perform Save for LogOnAccess"
>
> I am trying to do a simple record add to the LogOnAccess Activerecord
> class. Not a very descriptive message.
>
> Here are the class templates and followed by the code that was
> executed.
>
> [ActiveRecord("Application")]
> public partial class Application : ApplicationSecurity<Application>//
> ActiveRecordBase<Application>
> {
> #region Field Names
> public const string ApplicationIDFieldName = "ApplicationID";
> public const string ApplicationNameFieldName = "ApplicationName";
> public const string LogAccessFieldName = "LogAccess";
> #endregion //Field Names
>
> #region Constructors
> public Application() {}
> #endregion
>
> #region Properties
> [PrimaryKey(Generator=PrimaryKeyType.Identity,
> Column=ApplicationIDFieldName)]
> public virtual int ApplicationID { get; set; }
>
> [Property(ApplicationNameFieldName,
> ColumnType="String" ,NotNull=false )]
> public virtual string ApplicationName { get ; set; }
>
> [Property(LogAccessFieldName, ColumnType="Boolean" ,NotNull=false )]
> public virtual bool LogAccess { get ; set; }
>
> [HasMany(typeof(GroupSecurity), Table="GroupSecurity",
> ColumnKey="ApplicationID", Lazy = true)]
> public IList<GroupSecurity> GroupSecurityList     { get; set; }
>
> [HasMany(typeof(LogOnAccess), Table="LogOnAccess",
> ColumnKey="ApplicationID", Cascade =
> ManyRelationCascadeEnum.AllDeleteOrphan,Lazy = true)]
> public IList<LogOnAccess> LogOnAccessList { get; set; }
>
> #endregion
>
> [ActiveRecord("LogOnAccess")]
> public partial class LogOnAccess : ApplicationSecurity<LogOnAccess>//
> ActiveRecordBase<LogOnAccess>
> {
> #region Field Names
> public const string LogOnAutoIDFieldName = "LogOnAutoID";
> public const string UserNameFieldName = "UserName";
> public const string LogOnDateFieldName = "LogOnDate";
> #endregion //Field Names
>
> #region Constructors
> public LogOnAccess() {}
> #endregion
>
> #region Properties
> [PrimaryKey(Generator=PrimaryKeyType.Native,
> Column=LogOnAutoIDFieldName)]
> public virtual int LogOnAutoID { get ; set; }
>
> [Property(UserNameFieldName, ColumnType="AnsiChar" ,NotNull=false )]
> public virtual string UserName { get ; set; }
>
> [Property(LogOnDateFieldName, ColumnType="DateTime" ,NotNull=false )]
> public virtual DateTime LogOnDate { get ; set; }
>
> [BelongsTo(Type = typeof(Application), Column = "ApplicationID")]
> public Application Application { get; set; }
>
> I am calling this from the following class.
>
> #region Fields
> private string appName;
> private Application _applications;
> #endregion
>
> #region Constructors
> public AuthenticationLogic()
> {
> appName = ConfigurationManager.AppSettings["ProgramName"];
> string[] appNames = { appName };
> _applications = Application.FindOne(DetachedCriteria.For<Application>
> ()
> .Add(Expression.In("ApplicationName", appNames)));
>
> }
>
> #endregion
>
> public IList<GroupSecurity> GetAuthorizedGroups()
> {
>
> try
> {
>
> if (_applications != null)
> {
> System.Web.HttpContext.Current.Session.Add("LogUsers",
> _applications.LogAccess.ToString());
> return _applications.GroupSecurityList;}
> }
>
> catch
> {
> //TODO: enable logging functionality
> //logging functionality
> throw;
>
> }
> return null;
> }
>
> public bool InsertLogOnAccess(string username)
> {
> try
> {
>
> LogOnAccess _La = new LogOnAccess();
> _La.UserName = username;
> _La.Application = _applications;
> _La.Save();
>
> return true;}
>
> catch (Exception ex)
> {
> //TODO: enable logging functionality
> //logging functionality
> throw;}
>
> return false;
>
> }
>
> on _La.Save(); the exception is being throw. I would really appreciate
> it if someone could tell me what I am doing wrong.
>
> Innerexception:    at NHibernate.Type.BaseCharType.Set(IDbCommand cmd,
> Object value, Int32 index)
>    at NHibernate.Type.NullableType.NullSafeSet(IDbCommand cmd, Object
> value, Int32 index)
>    at NHibernate.Type.NullableType.NullSafeSet(IDbCommand st, Object
> value, Int32 index, Boolean[] settable, ISessionImplementor session)
>    at NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate
> (Object id, Object[] fields, Boolean[] includeProperty, Boolean[][]
> includeColumns, Int32 table, IDbCommand statement, ISessionImplementor
> session, Int32 index)
>    at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object
> [] fields, Boolean[] notNull, SqlCommandInfo sql, Object obj,
> ISessionImplementor session)
>
> stack trace:     at Castle.ActiveRecord.ActiveRecordBase.InternalSave
> (Object instance, Boolean flush)
>    at Castle.ActiveRecord.ActiveRecordBase.Save(Object instance)
>    at Castle.ActiveRecord.ActiveRecordBase.Save()
>    at LogOnCastle.BLL.AuthenticationLogic.InsertLogOnAccess(String
> username) in C:\Visual Studio Projects\LogOnCastle\LogOnCastle\BLL
> \AuthenticationLogic.cs:line 87
>
> Thank you in advance
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to