edmxで生成されたEntity Frameworkからスキーマ情報を取得する方法を知っている人はいますか?エンティティフレームワーク4でプログラマティブに外部キーのメタデータを読み取る
具体的には、私が現在インスタンスを持っていないエンティティの外部キーをトラバースして外部キーの関係を取得したいと思っています。毎回カスタムコードなしで任意のエンティティクラスに一般的に適用されます。
EG:私のスキーマには2つのクラスUserとGroupがあります。私は "User"エンティティの "GroupId"プロパティから得た "42"という数字を持っていますが、現時点では "User"のこの "GroupId"プロパティがどのようにその "GroupId"プロパティによって "Group"エンティティになります。
私はこの仕事を得ることができませんでした。私はコンテキストでRelationshipManagerプロパティを見つけることができませんでしたが(CType(tableObject、IEntityWithRelationships).RelationshipManagerで取得できますが)、その後、GetRelatedEndsからAssociationSetにキャストできる結果が見つかりませんでした。コード例を深く感謝します。 – pbarranis
遅い応答のおかげで、私はこれを長い間読んでいなかった。私はContextから直接ではなく、ObjectStateEntryから作業していたことをより明確にすべきでした。私がそこから使用した正確な構文は "foreach(AssociationSet assoc in ose.RelationshipManager.GetAllRelatedEnds()。Select(end => end.RelationshipSet).Where(rs => rsはAssociationSet &&(AssociationSet)rs).ElementTypeです。 IsForeignKey).Cast()) "、私は外部キーの特定の多重度が欲しかったので、それがどちら側であったかを調べるためにいくつかの追加のロジックを持っていました。 –
fyjham