对于我正在使用Entity Framework的项目,我希望能够枚举给定对象实例的所有导航属性(假设它是由EF生成的对象)。从那里我想获得每个导航属性的相关Id属性。
例如,如果我获得了类Person
的实例,我希望能够找到名为Address
和Boss
的导航属性。对于这两个导航属性,我想“查找”名为AddressId
和BossId
的相关Id属性。
我需要那些Id属性,所以我可以在不同的数据库上运行查询,这些数据库没有相同的外键但具有完全相同的ID。
到目前为止,我已经想出了一种方法来获取EF生成的随机对象实例的RelationshipManager。在调试时,我可以通过Manager的Relationships
属性获取外键关系。但我只能获得导航属性名称。所以我可以看到FK_Person_Address
与名为Address
的导航属性相关但我找不到AddressId
。
所以我的问题是,如何动态(不了解Person
类'布局)发现与AddressId
相关的Address
属性?
我知道外键关系可能在关系的另一端有{Id}属性(Boss
指向Person
,而不是Person
有BossId
)。在这种情况下,当我正在检查Boss
的实例时,我仍然希望发现PersonId
有一个Person
。
答案 0 :(得分:0)
这是一个返回已知实体对象的键值的方法:
ObjectStateEntry
此方法使用基础EntityKey
API获取属于每个实体对象的java -cp java-json.jar:. PlutoMake
个对象。 Get suggested invitees failed due to error code: 3
包含实体的键值作为键值对。 (具有复合键的实体具有多个键值。)