可以创建ComponentConvention,但此代码不起作用,因为References集合是IManyToOneInspector而不是IManyToOneInstace的集合。 有没有其他方法来指定列?
public class ComponentConvention : IComponentConvention
{
public void Apply(IComponentInstance instance)
{
foreach (var inspector in instance.References)
{
inspector.Column("some_name");
}
}
}
答案 0 :(得分:1)
遗憾的是,引用不会以与Properties和OneToOnes相同的方式公开。 您可以使用反射访问底层的ComponentMapping,然后使用
创建自己的ManyToOneInstancesvar 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");
}