2010-11-02 76 views
2

我正在使用Sharp Architecture的最新版本,并且在存储库上调用SaveOrUpdate时遇到问题。我总是得到MappingException,没有persister:error。我没有从默认的夏普架构改变很多,我指向包含我的实体的dll。有没有人遇到这个问题?之前我使用Sharp Architecture进行手动映射。 谢谢!FluentNHibernate自动映射“没有persister为”

这是我使用的生成函数。 TestEntity位于数据项目引用的另一个项目中。如果我为TestEntity添加一个ClassMap,它会找到映射。

public AutoPersistenceModel Generate() 
{ 
    return AutoMap.AssemblyOf<TestEntity>(new AutomappingConfiguration()) 
     .Conventions.Setup(GetConventions()) 
     .IgnoreBase<Entity>() 
     .IgnoreBase(typeof(EntityWithTypedId<>)) 
     .UseOverridesFromAssemblyOf<AutoPersistenceModelGenerator>(); 
} 

回答

2

此错误消息表示您正在尝试保存未映射的实体。夏普体系结构有一个扩展方法,允许您将所有映射保存为XML文件。尝试使用它并检查实体是否真的被映射。

+0

你的意思是WriteMappingsTo方法吗?当我用我的实体加载程序集后调用它时,我没有在输出目录中得到任何文件。 – 2010-11-02 13:28:55

+0

当我添加ClassMap <>映射它似乎拿起映射,而我得到一个SQL错误,而不是。出于某种原因,它只是不适用于Automapping。 – 2010-11-02 14:27:15

+0

我想通了。谢谢您的帮助! – 2010-11-02 14:41:40

0

我想我的自动映射配置过滤出来 - 一旦我从实体派生我的TestEntity,自动映射器就把它捡起来了。