Свободный NHibernate: как указать имя столбца для ссылки в компоненте, используя соглашения? - PullRequest
2 голосов
/ 04 апреля 2011

Можно создать ComponentConvention, но этот код не работает, поскольку коллекция References является коллекцией IManyToOneInspector, а не IManyToOneInstace. Есть ли другой способ указать столбец?

public class ComponentConvention : IComponentConvention
{
    public void Apply(IComponentInstance instance)
    {
        foreach (var inspector in instance.References)
        {
            inspector.Column("some_name");
        }
    }
}

1 Ответ

1 голос
/ 17 августа 2011

К сожалению, ссылки не отображаются так же, как Properties и OneToOnes. Вы можете получить доступ к базовому ComponentMapping с отражением, а затем создать свои собственные ManyToOneInstances с

var mapping = (ComponentMapping) typeof (ComponentInstance).GetField("mapping", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(instance);
foreach (var r in mapping.References)
{
    var ri = new ManyToOneInstance(r);
    ri.Column("some_name");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...