Fluent NHibernateマッピングファイルを解析して、そこで指定されているテーブル名と列名を取得できるようにします。
アセンブリをロードしてタイプをClassMapとして反映することは問題ではありませんが、そのクラスはテーブルと列の名前を設定するメソッドのみを取得します。名前を再度取得することはできません。
何か案は?
Fluent NHibernateマッピングファイルを解析して、そこで指定されているテーブル名と列名を取得できるようにします。
アセンブリをロードしてタイプをClassMapとして反映することは問題ではありませんが、そのクラスはテーブルと列の名前を設定するメソッドのみを取得します。名前を再度取得することはできません。
何か案は?
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;
}
理論的には、リフレクションを介してプライベート フィールドの属性、プロパティ、および参照を取得し、その方法で情報を取得できます。