Could you help me, please. I don't understand why this code doesn't work with the latest version of nhibernate whereas it works with nhibernate for .NET 1.1.
namespace NhbernateTest
{
class Program
{
static void Main(string[] args)
{
log4net.Config.XmlConfigurator.Configure();
NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionProvider, "NHibernate.Connection.DriverConnectionProvider");
cfg.SetProperty(NHibernate.Cfg.Environment.Dialect, "NHibernate.Dialect.MsSql2005Dialect");
cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionString, ConfigurationManager.ConnectionStrings[1].ConnectionString);
cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionDriver, "NHibernate.Driver.SqlClientDriver");
System.IO.MemoryStream flux = new System.IO.MemoryStream();
NHibernate.Mapping.Attributes.HbmSerializer.Default.Validate = true;
NHibernate.Mapping.Attributes.HbmSerializer.Default.HbmDefaultAccess = "field.camelcase-underscore";
NHibernate.Mapping.Attributes.HbmSerializer.Default.Serialize(flux, System.Reflection.Assembly.GetExecutingAssembly());
flux.Position = 0;
cfg.AddInputStream(flux);
flux.Close();
NHibernate.ISessionFactory _sessionFactory = cfg.BuildSessionFactory();
User newUser = new User();
newUser.UserName = "Joseph Cool";
newUser.Password = "abc123";
newUser.EmailAddress = "
[email protected]";
newUser.LastLogon = DateTime.Now;
NHibernate.ISession session = null;
NHibernate.ITransaction transaction = null;
try
{
session = _sessionFactory.OpenSession();
transaction = session.BeginTransaction();
session.SaveOrUpdate(newUser);
transaction.Commit();
}
catch(Exception e)
{
if (transaction != null)
transaction.Rollback();
throw;
}
finally
{
if (session != null)
session.Close();
}
}
}
[NHibernate.Mapping.Attributes.Class(Table = "users")]
public class User
{
private int id;
private string userName;
private string password;
private string emailAddress;
private DateTime lastLogon;
public User()
{
}
[NHibernate.Mapping.Attributes.Id(Name = "LogonId")]
[NHibernate.Mapping.Attributes.Generator(1, Class = "native")]
public virtual int Id
{
get { return id; }
}
[NHibernate.Mapping.Attributes.Property(Column = "Name")]
public virtual string UserName
{
get { return userName; }
set { userName = value; }
}
[NHibernate.Mapping.Attributes.Property]
public virtual string Password
{
get { return password; }
set { password = value; }
}
[NHibernate.Mapping.Attributes.Property]
public virtual string EmailAddress
{
get { return emailAddress; }
set { emailAddress = value; }
}
[NHibernate.Mapping.Attributes.Property]
public virtual DateTime LastLogon
{
get { return lastLogon; }
set { lastLogon = value; }
}
}
}
the error occurs at line " cfg.AddInputStream(flux); " and the message is : Could not compile the mapping document: (unknown)
Do you have an idea of the problem ?
Thank you in advance.