通过Fluent NHibernate AutoMapper中的可访问性忽略属性映射

Dav*_*ale 2 c# nhibernate nhibernate-mapping fluent-nhibernate automapping

我有以下类,我使用Fluent NHibernate的AutoMapper进行映射.我不希望列表项可以公开修改,因此有一个公共IEnumerable支持IList,可以在内部或NHibernate填充.

我希望NHibernate映射teamMembers到一个名为的列TeamMembers.我也希望FNH忽略TeamMembers这个类的属性.

public class Team : Entity
{
    protected internal virtual IList<Person> teamMembers { get; set; }
    public IEnumerable<Person> TeamMembers { get { return teamMembers;} }
}
Run Code Online (Sandbox Code Playgroud)

reb*_*ard 5

以下是告诉NHibernate的Autopersistence模型忽略您的属性的方法:

var cfg = Fluently.Configure()
            .Database(configurer)
            .Mappings(m =>
                        {
                            m.AutoMappings.Add(AutoMap.Assemblies(Assembly.GetExecutingAssembly())
                                .Override<Team>(map => map.IgnoreProperty(team => team.TeamMembers)));
                        });
Run Code Online (Sandbox Code Playgroud)

然后你会得到你想要的.