我有以下代码,它给出了一个没有持久性错误的映射异常:
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();
}
}
我的解决方案中有三个项目:MainApplication
,Entities
和EntityMappings
MainApp
引用了Entities
,EntityMappings
引用了Entities
我不明白我做错了什么。有什么想法吗?
修改
属性为public
确切的错误消息是:No persister for: TNT_DAL.EntityClasses.Card
答案 0 :(得分:2)
确保您的实体和映射类为public
。实体的属性,即数据库字段应为public virtual
。
同时尝试指定映射类的程序集而不是使用GetExecutingAssembly()
,当我第一次尝试设置FNH时,我模糊地回忆起遇到问题。
.Mappings(x => x.FluentMappings.AddFromAssemblyOf<CardMap>())