Я генерирую POCO (скажем, они являются подклассами MyEntityObject ), используя шаблон T4 из файла EDMX.
У меня есть 3 объекта, например:
- MyTable1 (PrimaryKey: MyTable1ID)
- MyTable2 (PrimaryKey: MyTable2ID)
- MyTable3 (PrimaryKey:MyTable3ID)
Эти объекты имеют следующие отношения:
MyTable1.MyTable1ID <=> MyTable2.MyTable1ID (MyTable1ID является внешним ключом для MyTable1)
MyTable2.MyTable2ID <=> MyTable3.MyTable2ID (MyTable2ID - это внешний ключ MyTable2)
Или в другом представлении:
MyTable1 <= MyTable2 <= MyTable3 </p>
Я хочу извлечь все отношения внешнего ключа
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";