Вы можете использовать отражение, чтобы изучить свойства каждого типа в контексте. (В LinqPad контекстом является this
).
- Значения и строковые свойства будут скалярными полями в таблице,
- Свойства EntitySet будут представлять отношения [что-то]-ко-многим, и
- другие типы будут отношениями "что-то" к одному.
Если вы соедините две стороны отношений, вы сможете выяснить, что [что-то] есть в каждом случае. Имеет ли это смысл?
Редактировать
Я просто немного ковырялся, и есть лучший подход. Информация о модели доступна через свойство Mapping. Попробуйте это:
var tableData = from t in this.Mapping.GetTables()
select new
{
t.TableName,
Associations =
from a in t.RowType.Associations
select new
{
a.ThisMember.Name,
TypeName = a.ThisMember.Type.Name
}
};
tableData.Dump();
Предполагая, что вы активировали Автозаполнение, вам будет просто найти точные данные, которые вас интересуют, изучив свойства этих метаданных.