Hello all,

I've been using Castle ActiveRecord and am interested in starting a new 
project using just NHibernate.  I'd like to use the latest stable release 
which appears to be v3.3.3.4001.  I'd like to use the Mapping ByCode 
feature since that is similar to the Castle ActiveRecord that I have been 
working with and seems to offer me the quickest approach to working.  I've 
created a simple class 

  public class Model {
    public virtual long ID { get; set; }

  }

  public class ModelMap : ClassMapping<Model> {
    public ModelMap() {
      Id(x => x.ID, m => m.Generator(Generators.Identity));
      Lazy(false);
    }
  }


i've created a simple MSTest Unit Test
using SyLogis.Models;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace TestProject1
{
  [TestClass()]
  public class ModelTest {

    static InMemoryDatabaseTest imdb = null;


    [ClassInitialize()]
    public static void MyClassInitialize(TestContext testContext) {
      System.Reflection.Assembly assembly = 
typeof(NumberedEntityMap).Assembly;
      imdb = new InMemoryDatabaseTest(assembly);
    }

    [TestMethod()]
    public void ID_Test() {
      Model target = new Model(); // TODO: Initialize to an appropriate 
value      
      long expected = 1; // TODO: Initialize to an appropriate value
      long actual;
      target.ID = expected;
      actual = target.ID;
      imdb.session.Save(target);
      target = null;
      target = imdb.session.Get<Model>(expected);
      Assert.AreEqual<long>(expected, target.ID);
    }
  }
}

 and here is the inmemory piece 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Tool.hbm2ddl;
using System.Reflection;
using System.Data;


namespace TestProject1 {

  public class InMemoryDatabaseTest : IDisposable {

    public static Configuration Configuration;
    public static ISessionFactory SessionFactory;
    public ISession session;
    public IDbConnection connection;

    public InMemoryDatabaseTest(Assembly assemblyContainingMapping) {
      try {
        if (Configuration == null) {
          Configuration = new Configuration()
            .SetProperty(NHibernate.Cfg.Environment.ConnectionProvider, 
"NHibernate.Connection.DriverConnectionProvider")
            .SetProperty(NHibernate.Cfg.Environment.ConnectionDriver, 
typeof(SQLite20Driver).AssemblyQualifiedName)
            .SetProperty(NHibernate.Cfg.Environment.ConnectionString, "Data 
Source=:memory:;Version=3;New=True;")
            .SetProperty(NHibernate.Cfg.Environment.ShowSql, "false")
            .SetProperty(NHibernate.Cfg.Environment.Dialect, 
typeof(SQLiteDialect).AssemblyQualifiedName)
            .SetProperty(NHibernate.Cfg.Environment.ReleaseConnections, 
"on_close")
            .SetProperty(NHibernate.Cfg.Environment.MaxFetchDepth, "1")
            .AddAssembly(assemblyContainingMapping);

          SessionFactory = Configuration.BuildSessionFactory();
        }

        session = SessionFactory.OpenSession();
        connection = session.Connection;
        new SchemaExport(Configuration)
          .SetOutputFile(".\\sqlite.sql")
          .Execute(true, true, false, connection, Console.Out);

      } catch (Exception ex) {
        throw;
      }
    }
        

    public void Dispose() {
      session.Dispose();
    }
  }
}


when i run the test it goes fine until it gets to the Save step at which 
point it throws an exception and the test details says there's no 
persister.  I'm not certain what I'm doing wrong.  I don't have any hbm.xml 
files to add as Embedded Resources (but I thought that was the point of 
Mapping ByCode).  I would appreciate any suggestions.  

Also all the NHibernate Getting Started samples I can find are for v3.1.0 
of NHibernate or even more often v2.1.x or similar.  Are there any Getting 
Started samples using v3.3.3?  If anyone has a working Visual Studio 
Solution using NHibernate v3.3.3 and could send it to me or post it 
somewhere, that would be much appreciated.  Thanks in advance.  Have a 
great day!


-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.

Reply via email to