流畅的NHibernate - 失败:NHibernate.MappingException:Tag没有持久性

时间:2014-06-27 10:19:03

标签: c# nhibernate fluent-nhibernate

我读了大约20个关于那个问题的问题,但找不到我的具体案例的解决方案,所以我在这里......

我使用通过NuGet

安装的nhibernate和流畅的nhibernate的最新版本

所有类都是pubblic,我在构建时没有错误

这是我所有测试的基类:

namespace Gedi.IntegrationTest
{
public class BaseDBTest : IDisposable
{
    private static NHibernate.Cfg.Configuration Configuration;
    private static ISessionFactory SessionFactory;
    protected ISession session;
    public BaseDBTest()
    {
        if (Configuration == null)
        {

            Configuration = new NHibernate.Cfg.Configuration();
            Configuration.Configure(); // read config default style         
            Fluently.Configure(Configuration)
                .Mappings(m => m.AutoMappings.Add(AutoMap.AssemblyOf<Tag>(new AutoMapConfiguration())));

            SessionFactory = Configuration.BuildSessionFactory();
        }
        session = SessionFactory.OpenSession();
        new SchemaExport(Configuration).Execute(true, true, false, session.Connection, Console.Out);        
        }
    public void Dispose()
    {
        session.Dispose();
    }       
}

}

这是autoMapConfig:

namespace Gedi.Application.DataAccess.Maps
{
public class AutoMapConfiguration : DefaultAutomappingConfiguration
{
    public override bool ShouldMap(Type type)
    {
        return type.Namespace.EndsWith("Entity");
        //return type.Name.Equals("Tag");   
    }
}

最后是地图

namespace Gedi.Application.DataAccess.Maps
{
public class TagMap: ClassMap<Tag>
{
    public TagMap()
    {// omitted for brevity}
}
}

这是我的Tag对象的定义:

namespace Gedi.Domain.Object.Entity
{
    public class Tag: IKeyedEntity<int>
    {// omitted for brevity}
}

调试测试我发现ShouldMap从未被执行但是为什么?

0 个答案:

没有答案
相关问题