Hi,
 I am trying to run a simple project using active record 2.0 with MS
Sql Server Compact Edition and getting exceptions.

Here is the code I am trying to run.

    class Program
    {
        static void Main(string[] args)
        {
            string dbPath = Environment.GetFolderPath
(Environment.SpecialFolder.ApplicationData) + "\\DatabaseApp";

            if(!Directory.Exists(dbPath))
                Directory.CreateDirectory(dbPath);

            string dbFile =dbPath + "\\Data.sdf";

            if (File.Exists(dbFile))
                File.Delete(dbFile);


           IDictionary<string,string> properties = new
Dictionary<string,string>();
            properties.Add("connection.driver_class",
"NHibernate.Driver.SqlServerCeDriver");
            properties.Add("dialect",
"NHibernate.Dialect.MsSqlCeDialect");
            properties.Add("connection.provider",
"NHibernate.Connection.DriverConnectionProvider");
            properties.Add("proxyfactory.factory_class",
"NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle");
            properties.Add("connection.connection_string", "Data
Source="+dbFile + ";");
            properties.Add("show_sql", "true");

            InPlaceConfigurationSource  config = new
InPlaceConfigurationSource();
            config.Add(typeof(ActiveRecordBase),properties);

            SqlCeEngine engine = new SqlCeEngine("Data Source=" +
dbFile);

            engine.CreateDatabase();

            ActiveRecordStarter.Initialize(config,
                new Type[]
                {
                    typeof(Record)
                }
            );

            ActiveRecordStarter.CreateSchema();


            Record part = new Record();
            part.Create();

        }
namespace DatabaseApp.TestStorage
{
    [ActiveRecord]
    public class Record:ActiveRecordBase<Record>
    {
        private Record()
        {

        }

        public Record(string name)
        {
            this.Name = name;
        }

        [PrimaryKey]
        public long RecID
        {
            get;
            private set;
        }

        [Property(Unique=true) ]
        public string Name
        {
            get;
            private set;
        }


    }
}


Here is the exception I am getting

Castle.ActiveRecord.Framework.ActiveRecordException was unhandled
  Message="Could not perform Create for Record"
  Source="Castle.ActiveRecord"
  StackTrace:
       at Castle.ActiveRecord.ActiveRecordBase.InternalCreate(Object
instance, Boolean flush) in c:\daten\dev\External\Castle
\AR2.0\ActiveRecord\Castle.ActiveRecord\Framework
\ActiveRecordBase.cs:line 145
       at Castle.ActiveRecord.ActiveRecordBase.Create(Object instance)
in c:\daten\dev\External\Castle\AR2.0\ActiveRecord\Castle.ActiveRecord
\Framework\ActiveRecordBase.cs:line 100
       at Castle.ActiveRecord.ActiveRecordBase.Create() in c:\daten\dev
\External\Castle\AR2.0\ActiveRecord\Castle.ActiveRecord\Framework
\ActiveRecordBase.cs:line 1474
       at DatabaseApp.Program.Main(String[] args) in C:\Dev\CSharp
\DatabaseApp\Program.cs:line 56
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String
[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile,
Evidence assemblySecurity, String[] args)
       at
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object
state)
       at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: NHibernate.AssertionFailure
       Message="null identifier"
       Source="NHibernate"
       StackTrace:
            at NHibernate.Engine.EntityKey..ctor(Object identifier,
String rootEntityName, String entityName, IType identifierType,
Boolean batchLoadable, ISessionFactoryImplementor factory, EntityMode
entityMode)
            at NHibernate.Engine.EntityKey..ctor(Object id,
IEntityPersister persister, EntityMode entityMode)
            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 Castle.ActiveRecord.ActiveRecordBase.InternalCreate
(Object instance, Boolean flush) in c:\daten\dev\External\Castle
\AR2.0\ActiveRecord\Castle.ActiveRecord\Framework
\ActiveRecordBase.cs:line 127
       InnerException:


Sql getting generated


NHibernate: INSERT INTO Record (Name) VALUES (@p0);@p0 = 'test'
NHibernate: select @@IDENTITY

Any idea why I am getting this exception?

Some more info
Setting Record.RecID to [PrimaryKey(PrimaryKeyType.Assigned) ] works
but none of the Auto generators work.

Thank you

--~--~---------~--~----~------------~-------~--~----~
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