sharepoint.linq.dll无法使用指定的强制转换

时间:2017-02-01 08:44:39

标签: c# linq sharepoint linq-to-sql

我正在编写代码来检查一个项目是否存在于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

1 个答案:

答案 0 :(得分:0)

我能够弄清楚这一点。事实证明,SP Metal生成的上下文文件已损坏。堆栈跟踪指出了解决方案。我删除了__permi(Object,Object),它运行得很好。