using System;
using FluentNHibernate;
using FluentNHibernate.Conventions;
using FluentNHibernate.Conventions.AcceptanceCriteria;
using FluentNHibernate.Conventions.Inspections;
using FluentNHibernate.Conventions.Instances;
using FubuCore;
namespace DovetailCRM.Core.Persistence
{
public class HasManyForeignKeyConvention : IHasManyConvention
{
public void Apply(IOneToManyCollectionInstance instance)
{
var key = "fk_{0}_to_{1}".ToFormat(instance.EntityType.Name.ToLower(),
instance.StringIdentifierForModel.ToLower());
instance.Key.ForeignKey(key);
}
}
public class ReferencesForeignKeyConvention : IReferenceConvention, IReferenceConventionAcceptance
{
public void Accept(IAcceptanceCriteria<IManyToOneInspector> criteria)
{
criteria.Expect(x => true);
}
public void Apply(IManyToOneInstance instance)
{
var key = "fk_{0}_to_{1}".ToFormat(instance.EntityType.Name.ToLower(),
instance.Property.Name.ToLower());
instance.ForeignKey(key);
}
}
}