2

如何在映射类中设置访问策略以指向基本 _photos 字段?

public class Content
{
  private IList<Photo> _photos;
  public Content()
  {
     _photos = new List<Photo>();
  }
  public virtual IEnumerable<Photo> Photos
  {
    get
    {
      return _photos;
    }
  }

  public virtual void AddPhoto() {...}
}

public class Article : Content
{
  public string Body {get; set;}

}

我目前正在使用以下方法来尝试定位支持字段,但由于找不到它而引发异常。

public class ArticleMap : ClassMap<Article>
{
   HasManyToMany(x => x.Photos)    
   .Access.CamelCaseField(Prefix.Underscore)  //_photos
   //...
}

我尝试将支持字段 _photos 直接移动到班级中并且访问有效。那么如何访问基类的支持字段?

4

2 回答 2

3

好的,找到了答案。使用 Fluent NHibernate 1.1 版(2010 年 5 月 23 日发布),您可以使用显示成员方法:

Reveal.Member<YourEntity>("_privateField");

所以上面的映射类现在变成了:

public class ArticleMap : ClassMap<Article>
{
   HasManyToMany<Photo>(Reveal.Member<Article>("_photos"))
   //...
}

发布详情: http: //fluentnhibernate.org/blog/2010/05/23/feature-focus-fields.html

于 2010-05-25T16:45:41.283 回答
0

尝试将可访问性更改_photos为受保护:

protected IList<Photo> _photos;
于 2010-05-24T17:49:43.437 回答