For the past two hours, I have been searching in googling and stackoverflowing and could not find the answer to my question:
I use ASP.NET MVC and NHibernate, and all I am trying to do is manually map my objects without displaying its base class. I use the following convention:
public class Car : EntityBase
{
public virtual User User { get; set; }
public virtual string PlateNumber { get; set; }
public virtual string Make { get; set; }
public virtual string Model { get; set; }
public virtual int Year { get; set; }
public virtual string Color { get; set; }
public virtual string Insurer { get; set; }
public virtual string PolicyHolder { get; set; }
}
Where EntityBase MUST NOT be displayed.
My NHibernate helper class is as follows:
namespace Models.Repository
{
public class NHibernateHelper
{
private static string connectionString;
private static ISessionFactory sessionFactory;
private static FluentConfiguration config;
private static ISessionFactory SessionFactory
{
get
{
if (sessionFactory == null)
{
connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
config = Fluently.Configure().Database(PostgreSQLConfiguration.PostgreSQL82.ConnectionString(connectionString));
config.Mappings(AddMappings);
sessionFactory = config.BuildSessionFactory();
}
return sessionFactory;
}
}
private static void AddMappings(MappingConfiguration mapConfig)
{
Assembly assembly = Assembly.Load("myProject");
mapConfig.FluentMappings.AddFromAssembly(assembly);
var autoMap = AutoMap.Assembly(assembly).IgnoreBase<EntityBase>().IgnoreBase<EntityBaseValidation>();
mapConfig.AutoMappings.Add(autoMap);
mapConfig.MergeMappings();
}
public static ISession OpenSession()
{
return SessionFactory.OpenSession();
}
public static void CloseSession()
{
SessionFactory.Close();
}
}
}
The error I'm getting now is:
System.ArgumentException: the type or method has 2 common parameters (s), but 1 common argument (s) is provided. a generic argument must be provided for each generic parameter
, . NHibernate ?