Вопрос

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

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

Любые идеи?

Это было полезно?

Решение

С использованием Отражатель, Похоже, что метод таблицы имеет эту подпись:

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top