ユーザー名を人物フィールドに保存するには:
カスタム フォームにユーザー エディター コントロールを提供し、解決された各エンティティを次のように保存しました。
if (currentPeopleEditor.Entities.Count != 0)
{
SPFieldUserValueCollection userCollection = new SPFieldUserValueCollection();
for (int index = 0; index < currentPeopleEditor.ResolvedEntities.Count; index++)
{
PickerEntity ObjEntity = (PickerEntity)currentPeopleEditor.ResolvedEntities[index];
userCollection.Add(new SPFieldUserValue(objSPWeb,Convert.ToInt32(ObjEntity.EntityData["SPUserID"]), ObjEntity.Key));
}
newItem[Field.Key.ToString()] = userCollection;
}
一部のユーザーがこの例外を受け取ると述べるまで、それは非常にうまく機能していました:「無効なルックアップ値
ルックアップ フィールドに無効なデータが含まれています。値を確認して、再試行してください。」
調査の結果、ObjEntity.EntityData["SPUserID"]) が null を返すため、このエラーが発生していることがわかりました。
これは、このサイト コレクションにアクセスしていないが、企業の AD システムのメンバーである一部のユーザー名を保存する必要があるために発生していました。