【发布时间】:2013-09-18 10:57:53
【问题描述】:
我有具有关键字和关键字属性的页面实体。
Keyword 属性存储一个字符串,如string Keyword = "my awesome page, page";
关键字会将这些信息存储在数据库中。
另一方面,关键字检索此关键字内容并用逗号分隔。
所以我的模型里面有
public Page : Entity<int>
{
public virtual string Keyword {get; set;}
public virtual IList<string> Keywords
{
get { return Keyword.Split(','); }
set { Keyword = string.Join(",", value); }
}
public Page() { Keywords = new List<string>(); }
}
所以我尝试通过代码将这个实体映射到符合规范的映射
public class PageMap : ClassMapping<Page>
{
public PageMap()
{
Property(x => x.Keyword);
Property(x => x.Keywords, m =>
{
m.Access(Accessor.Field);
});
}
}
但我得到了像
这样的期望NHibernate.MappingException : 无法编译映射文档: mapping_by_code ----> NHibernate.MappingException : 尝试问题 通过反射设置属性类型 NHibernate.PropertyNotFoundException:找不到属性,也找不到 “Model.Page”类中的“关键字”字段
即使我理解找不到属性的消息,我也不明白为什么?以及如何克服这一点。
谢谢
【问题讨论】:
-
如果我理解正确,您正在将关键字属性的访问定义为按字段,但您没有为关键字属性定义字段。 NHibernate 很可能正在寻找一个名为 _keywords 的字段。
标签: c# nhibernate