0

Fluent NHibernateマッピングファイルを解析して、そこで指定されているテーブル名と列名を取得できるようにします。

アセンブリをロードしてタイプをClassMapとして反映することは問題ではありませんが、そのクラスはテーブルと列の名前を設定するメソッドのみを取得します。名前を再度取得することはできません。

何か案は?

4

1 に答える 1

0

Reflectorを使用すると、 Table メソッドには次のシグネチャがあるように見えます。

public void Table(string tableName)
{
    this.attributes.Set<string>(x => x.TableName, tableName);
}

プロパティ、参照、およびコレクションを別々に保持するため、列ははるかに難しくなります。例えば。

protected virtual PropertyPart Map(PropertyInfo property, string columnName)
{
    PropertyPart propertyMap = new PropertyPart(property, typeof(T));
    if (!string.IsNullOrEmpty(columnName))
    {
        propertyMap.Column(columnName);
    }
    this.properties.Add(propertyMap);
    return propertyMap;
}

理論的には、リフレクションを介してプライベート フィールドの属性、プロパティ、および参照を取得し、その方法で情報を取得できます。

于 2011-01-31T18:42:00.067 に答える