Свободное отображение отражений NHibernate - PullRequest
0 голосов
/ 31 января 2011

Я бы хотел проанализировать файл сопоставления Fluent NHibernate, чтобы я мог получить имя таблицы и имена столбцов, которые там указаны.

Загрузка сборки и отображение типа как ClassMap не является проблемой, но этот класс получает только методы для установки имен таблиц и столбцов - ничего, чтобы вернуть имена обратно.

Есть идеи?

1 Ответ

0 голосов
/ 31 января 2011

Используя Отражатель , похоже, что табличный метод имеет такую ​​подпись:

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;
}

Теоретически вы можете получить атрибуты, свойства и ссылки личных полей с помощью отражения и получить информацию таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...