Как получить имя поля первичного ключа для нулевого 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, потому что она должна быть достаточной с двумя аргументами и приведет к дублированию имени сущности.