我正在编写代码来检查一个项目是否存在于sharepoint文档库中,我使用sp metal生成了实体类。代码如下:
public bool? checkRSA(string pin)
{
bool ?checkIfRsaExists = null;
SPSecurity.RunWithElevatedPrivileges(delegate ()
{
string siteURL = "http://dms.site.com/sites/DirOperations/CustomerCare";
CustomercareDataContext CustCareDB = new CustomercareDataContext(siteURL);
checkIfRsaExists = CustCareDB.GetList<BenefitsCT>("RSAs Library").ScopeToFolder("", true).Any(x => x.RSAPIN == pin);
});
return checkIfRsaExists;
}
现在每次运行此代码时都会抛出错误:指定的强制转换无效。
堆栈跟踪如下:
Stack_Trace在Set__permi(对象,对象)\ r \ n at Microsoft.SharePoint.Linq.SPItemMappingInfo.MaterializeEntity [TEntity](DataContext的 dc,SPDataList列表,SPListItem项,SPItemMappingInfo itemMappingInfo,JoinPath joinPath)\ r \ n在lambda_method(闭包, SPListItem)\ r \ n at System.Linq.Enumerable.WhereSelectEnumerableIterator
2.MoveNext()\r\n at System.Linq.Enumerable.Any[TSource](IEnumerable
1个来源,Func`2 谓词)\ r \ n at Microsoft.SharePoint.Linq.SPLinqProvider.Execute [T](式 表达式)\ r \ n at linkApprovals.WebService1。&lt;&gt; c__DisplayClass2_0.b__0()in c:\ users \ sp_admin \ documents \ visual studio 2015年\项目\ linkApprovals \ linkApprovals \ WebService1.asmx.cs:行 75 \ r \ n at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)“string
答案 0 :(得分:0)
我能够弄清楚这一点。事实证明,SP Metal生成的上下文文件已损坏。堆栈跟踪指出了解决方案。我删除了__permi(Object,Object),它运行得很好。