That is exactly what it was. Thank you very much!! What I did to correct the problem was to change the field name in the database (Since I am just starting, easier to fix it now.) to TypeName and then made the same changes in my FM_DocType class which FNH uses for automapping. changing that tag fixed the problem.
Thanks, Ed On Sep 29, 10:47 am, Juanma <[email protected]> wrote: > Probably you need to escape column Desc, since it's a reserved word. > > IIRC, you should modify the mapping to something like this: > <property name="Desc" column="`Desc`"/> (Note the backquotes around > Desc in column). > > I don't know how to do that with FNH, but there must be way. > > > > On Wed, Sep 29, 2010 at 5:38 PM, Ed <[email protected]> wrote: > > I have a program that is using FluenNHibernate to access a MySQL > > database, and while it reads all information fine, I am getting an > > error anytime I try to update or insert a record. During > > troubleshooting, I have noted that the docType sent has appropriate > > values for Code and Desc. Also, I am having no problem getting data > > and deleting a record. > > > Any Help would be greatly appreciated. > > > Ed. > > > The error: > > Error: > > > could not insert: [FileManager.Models.FM_DocType][SQL: INSERT INTO > > FM_DocType (Code, Desc) VALUES (?, ?)] > > > Source: > > NHibernate > > > Inner Exception: > > MySql.Data.MySqlClient.MySql > > > Exception: You have an error in your SQL syntax; check the manual that > > corresponds to your MySQL server version for the right syntax to use > > near 'Desc) VALUES ('T', 'Test')' at line 1 > > at MySql.Data.MySqlClient.MySqlStream.ReadPacket() at > > MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, > > Int32& insertedId) at MySql.Data.MySqlClient.Driver.GetResult(Int32 > > statementId, Int32& affectedRows, Int32& insertedId) at > > MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId) at > > MySql.Data.MySqlClient.MySqlDataReader.NextResult() at > > MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior > > behavior) at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() at > > MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() at > > NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand cmd) at > > NHibernate.Id.Insert.AbstractSelectingDelegate.PerformInsert(SqlCommandInfo > > insertSQL, ISessionImplementor session, IBinder binder) > > > Stack Trace: > > at > > NHibernate.Id.Insert.AbstractSelectingDelegate.PerformInsert(SqlCommandInfo > > insertSQL, ISessionImplementor session, IBinder binder) at > > NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object[] > > fields, Boolean[] notNull, SqlCommandInfo sql, Object obj, > > ISessionImplementor session) at > > NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object[] > > fields, Object obj, ISessionImplementor session) at > > NHibernate.Action.EntityIdentityInsertAction.Execute() at > > NHibernate.Engine.ActionQueue.Execute(IExecutable executable) at > > NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object > > entity, EntityKey key, IEntityPersister persister, Boolean > > useIdentityColumn, Object anything, IEventSource source, Boolean > > requiresImmediateIdAccess) at > > NHibernate.Event.Default.AbstractSaveEventListener.PerformSave(Object > > entity, Object id, IEntityPersister persister, Boolean > > useIdentityColumn, Object anything, IEventSource source, Boolean > > requiresImmediateIdAccess) at > > NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object > > entity, String entityName, Object anything, IEventSource source, > > Boolean requiresImmediateIdAccess) at > > NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent > > event) at > > NHibernate.Event.Default.DefaultSaveEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent > > event) at > > NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent > > event) at > > NHibernate.Event.Default.DefaultSaveEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent > > event) at > > NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent > > event) at NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent > > event) at NHibernate.Impl.SessionImpl.Save(Object obj) at Fil > > > My Code for update and insert: > > public static void InsertFM_DocType(FM_DocType docType) > > > { > > using (ISession session = > > DataConnector.Instance.SessionFactory.OpenSession()) > > { > > using (ITransaction trans = session.BeginTransaction()) > > { > > session.Save(docType); > > trans.Commit(); > > } > > } > > } > > > public static void UpdateFM_DocType(FM_DocType docType) > > { > > using (ISession session = > > DataConnector.Instance.SessionFactory.OpenSession()) > > { > > using (ITransaction trans = session.BeginTransaction()) > > { > > session.Update(docType); > > trans.Commit(); > > } > > } > > }My DataConnector Class: > > using System; > > using FileManager.Models; > > using FluentNHibernate; > > using FluentNHibernate.Automapping; > > using FluentNHibernate.Cfg; > > using FluentNHibernate.Cfg.Db; > > using NHibernate; > > using NHibernate.Cfg; > > using NHibernate.Tool.hbm2ddl; > > > namespace FileManager.Utilities > > { > > > public class DataConnector > > { > > public DataConnector() > > { > > CreateSessionFactory(); > > } > > > public static DataConnector Instance > > { > > get > > { > > lock (_myLock) > > { > > return _singleton; > > } > > } > > set > > { > > lock (_myLock) > > { > > _singleton = value; > > } > > } > > } > > > public ISessionFactory SessionFactory > > { > > get > > { > > return _sessionFactory; > > } > > } > > > private void CreateSessionFactory() > > { > > AutoPersistenceModel model = CreateMappings(); > > > FluentConfiguration config = Fluently.Configure() > > .Database(MySQLConfiguration.Standard > > .ConnectionString(c => c > > .Server("localhost") > > .Database("filedata") > > .Username("root") > > .Password(""))) > > .Mappings(m => > > m.AutoMappings.Add(model)); > > > _sessionFactory = config.BuildSessionFactory(); > > } > > > private AutoPersistenceModel CreateMappings() > > { > > return AutoMap > > .Assembly(System.Reflection.Assembly.GetCallingAssembly()) > > .Where(t => t.Namespace == "FileManager.Models"); // > > This is where your models for NHibernate are located. > > } > > > private static object _myLock = new object(); > > private static DataConnector _singleton; > > > private ISessionFactory _sessionFactory; > > }} > > > -- > > You received this message because you are subscribed to the Google Groups > > "nhusers" 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 > > athttp://groups.google.com/group/nhusers?hl=en.- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "nhusers" 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/nhusers?hl=en.
