【发布时间】:2011-07-18 22:51:59
【问题描述】:
我正在使用 EDMX 文件中的 T4 模板生成 POCO(假设它们是 MyEntityObject 的子类)。
我有 3 个实体,例如:
- MyTable1(主键:MyTable1ID)
- MyTable2(主键:MyTable2ID)
- MyTable3(主键:MyTable3ID)
这些实体具有以下关系:
MyTable1.MyTable1ID MyTable2.MyTable1ID(MyTable1ID 是 MyTable1) 的外键
MyTable2.MyTable2ID MyTable3.MyTable2ID(MyTable2ID 是 MyTable2 的外键)
或者换一种说法:
我的表 1
我要提取所有外键关系
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";
【问题讨论】:
标签: templates entity-framework-4 foreign-keys t4 edmx