2017-02-01 11 views
1

Я пишу код, чтобы проверить, существует ли элемент в библиотеке документов sharepoint, я создал классы объектов, используя sp metal. Код приведен ниже:Указанный прилив недействителен 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), и он отлично работал.