2017-02-01 10 views
1

アイテムが共有ドキュメントライブラリに存在するかどうかを確認するコードを作成しています。sp金属を使用してエンティティクラスを生成しました。コードは次のとおりです。指定されたキャストはsharepoint.linq.dllで無効です

public bool? checkRSA(string pin) 
    { 
     bool ?checkIfRsaExists = null; 
     SPSecurity.RunWithElevatedPrivileges(delegate() 
     { 
      string siteURL = "http://dms.nlpcpfa.com/sites/DirOperations/CustomerCare"; 
      CustomercareDataContext CustCareDB = new CustomercareDataContext(siteURL); 
      checkIfRsaExists = CustCareDB.GetList<BenefitsCT>("RSAs Library").ScopeToFolder("", true).Any(x => x.RSAPIN == pin); 
     }); 
     return checkIfRsaExists; 
    } 

このコードを実行するたびに、エラーがスローされます。指定されたキャストは無効です。

スタックトレースは以下の通りです:

StackTrace at Set__permi(Object , Object)\r\n at Microsoft.SharePoint.Linq.SPItemMappingInfo.MaterializeEntity[TEntity](DataContext dc, SPDataList list, SPListItem item, SPItemMappingInfo itemMappingInfo, JoinPath joinPath)\r\n at lambda_method(Closure , SPListItem)\r\n at System.Linq.Enumerable.WhereSelectEnumerableIterator 2.MoveNext()\r\n at System.Linq.Enumerable.Any[TSource](IEnumerable 1 source, Func`2 predicate)\r\n at Microsoft.SharePoint.Linq.SPLinqProvider.Execute[T](Expression expression)\r\n at linkApprovals.WebService1.<>c__DisplayClass2_0.b__0() in c:\users\sp_admin\documents\visual studio 2015\Projects\linkApprovals\linkApprovals\WebService1.asmx.cs:line 75\r\n at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)" string

答えて

0

私はこれを理解することができました。 SP Metalによって生成されたコンテキストファイルが破損していることが判明しました。スタックトレースが解決策を指摘しました。私は__permi(Object、Object)を削除し、完全に機能しました。

関連する問題