EF4: получить имена связанных столбцов из NavigationProperty EDMX

Я генерирую объекты POCO (допустим, они являются подклассами MyEntityObject ), используя шаблон T4 из файла EDMX.

У меня есть 3 объекта, например:

  • MyTable1 (PrimaryKey: MyTable1ID)
  • MyTable2 (PrimaryKey: MyTable2ID)
  • MyTable3 (PrimaryKey: MyTable3ID)

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";
9
задан 19 March 2011 в 23:39
поделиться