public static object[] GetPKValues(this RowInfo rowInfo, IDataHelper dataHelper) { Type entityType = rowInfo.dbSetInfo.EntityType; FieldInfo[] finfos = rowInfo.dbSetInfo.GetPKFieldInfos(); object[] result = new object[finfos.Length]; for (int i = 0; i < finfos.Length; ++i) { ValueChange fv = rowInfo.GetValue(finfos[i].fieldName); result[i] = fv.GetTypedValue(entityType, rowInfo.dbSetInfo, dataHelper); } return(result); }