Taylohtio/GeneralApi/GeneralApi.Core/Infrastructure/DataAccess/NHConfiguration.cs

54 lines
1.9 KiB
C#

using System.Configuration;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using FluentNHibernate.Conventions.Helpers;
using NHibernate.Cache;
using NHibernate.ByteCode.LinFu;
using Taloyhtio.GeneralApi.Core.Entities;
using Configuration = NHibernate.Cfg.Configuration;
namespace GeneralApi.Core.Infrastructure.DataAccess
{
public class NHConfiguration
{
public static Configuration Configure()
{
return build();
}
private static Configuration build(/*string configurationFile*/)
{
var connectionString =
ConfigurationManager.ConnectionStrings["Taloyhtio.GeneralApi.MasterDB"];
// var configuration = new Configuration();
//
// if (string.IsNullOrEmpty(configurationFile))
// configuration.Configure();
// else
// configuration.Configure(configurationFile);
return Fluently.Configure()
.Database(
MsSqlConfiguration.MsSql2000
.Cache(c => c
.UseQueryCache()
.UseMinimalPuts()
.ProviderClass<HashtableCacheProvider>())
.ConnectionString(connectionString.ToString())
.ProxyFactoryFactory(typeof(ProxyFactoryFactory))
)
.Mappings(cfg =>
{
//cfg.HbmMappings.AddFromAssemblyOf<UserMap>();
cfg.FluentMappings.AddFromAssemblyOf<Condo>()
.Conventions.Setup(mappings =>
{
mappings.AddAssembly(typeof(Condo).Assembly);
mappings.Add(ForeignKey.EndsWith("Id"));
});
}).BuildConfiguration();
}
}
}