如何获取null EntityReference的主键字段名称?

时间:2013-03-25 22:06:14

标签: entity-framework-4 null linq-to-entities foreign-keys entityreference

我已经使用以下函数为外键引用赋值(我知道,它很脏,对复合键不起作用):

        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)

问题是它不适用于新创建的对象newRec,因为tbl.EntityKey和tbl.RelationshipSet都是null。

我看到的一条路线是获取tbl.GetType()并以某种方式从那里找到Id列。如果这是正确的路线,那么如何?

还有其他路线吗?

我的目标不是将更多参数传递给setFk函数,因为它应该足以使用2个参数,并且会导致实体名称的重复。

0 个答案:

没有答案