0

外部キー参照に値を代入する次の関数を作成しました (これはダーティで、複合キーでは機能しません)。

        void setFk(dynamic tbl,object id){
            var path=db.DefaultContainerName+"."+tbl.TargetRoleName;
            var ret=new System.Data.EntityKey(path, tbl.RelationshipSet.ElementType.RelationshipEndMembers[0].GetEntityType().KeyMembers[0].Name, id);
            tbl.EntityKey=ret;
        }

これで呼び出したい:setFk(newRec.WorkItemsReference,src.WorkItemsId)

問題は、tbl.EntityKey と tbl.RelationshipSet が両方とも null であるため、新しく作成されたオブジェクト newRec では機能しないことです。

私が見る 1 つのルートは、tbl.GetType() を取得し、そこから何らかの方法で Id 列を見つけることです。これが正しいルートである場合、どのように?

他のルートは?

私の目標は、 setFk 関数にそれ以上の引数を渡さないことでした。これは、2 つの引数で十分であり、エンティティ名の重複につながるためです。

4

0 に答える 0