我有类filter.cs具有以下属性:
public virtual int Id { get; set; }
public virtual Attribute Attribute { get; set; }
public virtual Int16 Type { get; set; }
public virtual string FilterValue { get; set; }
public virtual ReportConfiguration ReportConfiguration { get; set; }
Attribute和ReportConfiguration是外键。
我做了这个映射:
Id(a => a.Id).UnsavedValue(0).GeneratedBy.Identity();
Map(a => a.Type);
Map(a => a.FilterValue);
References(x => x.ReportConfiguration).Column("IdReportConfiguration").Not.LazyLoad();
References(x => x.Attribute).Column("IdAttribute").Not.LazyLoad();
另外,我有一个Repository类,例如使用方法:
public int Create(Filter F)
{
int FilterId = 0;
Transactional(session =>
{
FilterId = (int)session.Save(F);
});
return FilterId;
}
当我进行Create(Filter F)
的单元测试时,它产生了一个异常:
没有持久性:...... Filter.cs
我认为映射不正确。
有什么想法吗?
谢谢和最诚挚的问候。
答案 0 :(得分:0)
试试这里:
Fluent Nhibernate No persister for:
从上面的帖子:
解决方案:由于该类不公开,因此会发生此错误。只是改变 公开的类,这不会再发生。但是,如果你不这样做 想要在程序集外暴露程序集,您仍然可以标记 构造函数为'internal'。
这是你的情况吗?
这是一个类似的问题: