Я генерирую объекты POCO (допустим, они являются подклассами MyEntityObject ), используя шаблон T4 из файла EDMX.
У меня есть 3 объекта, например:
MyTable 12109]. Эти объекты имеют следующие отношения:
MyTable 12109. MyTable1ID <=> MyTable2.MyTable1ID (MyTable1ID - это внешний ключ к MyTable1)
MyTable2.MyTable2ID <=> MyTable3.MyTable2ID (MyTable2ID - это внешний ключ к MyTable2)
Или в другом представлении:
MyTable1 <= MyTable2 <= MyTable3
Я хочу извлечь все отношения внешних ключей
NavigationProperty[] foreignKeys = entity.NavigationProperties.Where(np => np.DeclaringType == entity && ((AssociationType)np.RelationshipType).IsForeignKey).ToArray();
forewach (NavigationProperty foreignKey in foreignKeys)
{
// generate code....
}
Мой вопрос: Как я могу извлечь имена столбцов которые связаны между двумя объектами?
Примерно так:
void GetLinkedColumns(MyEntityObject table1, MyEntityObject table2, out string fkColumnTable1, out string fkColumnTable2)
{
// do the job
}
В примере
string myTable1Column;
string myTable2Column;
GetLinkedColumns(myTable1, myTable2, out myTable1Column, out myTable2Column);
результат должен быть
myTable1Column = "MyTable1ID";
myTable2Column = "MyTable2ID";