I'm experiencing a problem, when I try to save a instance using NHibernate on a WPF + C# application.
Debugging it, show that the errors occurs on step session.Save(MyInstance);
You can see the complete method below. The error is:
An unhandled exception of type 'NHibernate.Exceptions.GenericADOException' occurred in NHibernate.dll Additional information: could not insert: [Blog.Models.Province][SQL: INSERT INTO [Province] (CodProv, NomeProv, Regiao) VALUES (?, ?, ?); select SCOPE_IDENTITY()]
private void txt_Click(object sender, RoutedEventArgs e)
{
using(ISession session = NHibernateHelper.AbreSession())
{
Province province = new Province();
province.CodProv = "11";
province.NomeProv = "Maputo Cidade";
province.Regiao = "Sul";
ITransaction tx = session.BeginTransaction();
session.Save(province);
tx.Commit();
}
The NHibernateHelper Class
public class NHibernateHelper
{
private static ISessionFactory factory = CriaSessionFactory();
private static ISessionFactory CriaSessionFactory()
{
Configuration cfg = new Configuration();
cfg.Configure();
ISessionFactory factory = Fluently.Configure(cfg)
.Mappings(x =>
{
x.FluentMappings.AddFromAssembly(
Assembly.GetExecutingAssembly());
}).BuildSessionFactory();
return factory;
}
public static ISession AbreSession()
{
return factory.OpenSession();
}
}
Someone can help me?
Here's my Province and Mapping classes
public class Province
{
public virtual int Id { get; set; }
public virtual string CodProv { get; set; }
public virtual string NomeProv { get; set; }
public virtual string Regiao { get; set; }
}
Mapping class
public class ProvinceMapping : ClassMap<Province>
{
public ProvinceMapping()
{
Id(province => province.Id).GeneratedBy.Identity();
Map(province => province.CodProv);
Map(province => province.NomeProv);
Map(province => province.Regiao);
}
}
If necessary, here's my table province script.
CREATE TABLE Provincia(
ID INT IDENTITY(1,1) PRIMARY KEY,
codProv VARCHAR(2) NOT NULL,
nomeProv VARCHAR(25) NOT NULL,
regiao VARCHAR(10) );
Provinceclass?