流畅的NHibernate映射异常(无持久性错误)

时间:2014-05-05 08:31:43

标签: c# fluent-nhibernate

我有以下代码,它给出了一个没有持久性错误的映射异常:

var sessionFactory = Fluently.Configure()
    .Database(
        OracleClientConfiguration.Oracle10.ConnectionString(
            c => c.FromConnectionStringWithKey("Main.ConnectionString")))
    .Mappings(x => x.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()))
    .BuildSessionFactory();

using (var session = sessionFactory.OpenSession())
{
    using (var tx = session.BeginTransaction())
    {
        var card = new Card {CardType = "Test"};

        session.Save(card);

        tx.Commit();
    }
}

我的解决方案中有三个项目:MainApplicationEntitiesEntityMappings

MainApp引用了EntitiesEntityMappings引用了Entities

我不明白我做错了什么。有什么想法吗?

修改

属性为public

确切的错误消息是:No persister for: TNT_DAL.EntityClasses.Card

1 个答案:

答案 0 :(得分:2)

确保您的实体和映射类为public。实体的属性,即数据库字段应为public virtual

同时尝试指定映射类的程序集而不是使用GetExecutingAssembly(),当我第一次尝试设置FNH时,我模糊地回忆起遇到问题。

.Mappings(x => x.FluentMappings.AddFromAssemblyOf<CardMap>())