1

流暢なnhibernateを介して、関係のためにテーブルに余分な外部キーを追加するため、規則で自動マッピングを使用できません。この問題は、stackoverflow.com/questions/6091654/fluentnhibernate-automapping-onetomany-relation-using-attribute-and-convention/ 7867516で詳しく説明されています。

しかし、ご覧のとおり、属性を使用することで解決されます。私の質問は:

Model Properties で属性を使用したくありません。次の年には、プロジェクトで nhibernate を使用しない可能性があるためです。だから私はモデルに触れたくありません。KeyColumnAttribute がない問題の解決策はありますか。

ありがとう

4

1 に答える 1

0
class BiDirectionalHasManyConvention : IReferenceConvention, IHasManyConvention
{
    public void Apply(IOneToManyCollectionInstance instance)
    {
        // looks for a Property which references the type containing the collection
        var referenceProperty = instance.ChildType.GetProperties()
            .First(prop => prop.PropertyType == instance.EntityType);

        instance.Key.Column(referenceProperty.Name + "Id");
    }

    // Optional, just to make sure the foreignkey column is propertyname + "Id"
    public void Apply(IManyToOneInstance instance)
    {
        instance.Column(instance.Name + "Id");
    }
}
于 2011-12-08T08:22:55.363 に答える