簡體   English   中英

指定的強制類型轉換無效查詢Sharepoint

[英]Specified cast is not valid querying Sharepoint

使用SPMETAL,我生成了一個C#文件,允許我使用LINQ來訪問Sharepoint對象。

但是,使用非常簡單的查詢會產生一個奇怪的錯誤:

指定的演員表無效。

堆棧跟蹤:
Microsoft.SharePoint.Linq.SPItemMappingInfo.MaterializeEntity [TEntity](DataContext dc,SPDataList列表,SPListItem項目,SPItemMappingInfo itemMappingInfo,位於System.Linq.Enumerable.WhereSelectEnumerableIterator 2.MoveNext() at System.Collections.Generic.List 1.中的lambda_method(ExecutionScope,SPListItem)處的2.MoveNext() at System.Collections.Generic.List 。System.Linq.Enumerable.ToList 1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable ctor(IEnumerable 1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable 1源),位於Microsoft:C. \\ XXXXXXXXX \\ QuickModify \\ Program.cs:第42行,位於System.AppDomain._nExecuteAssembly(裝配體,字符串[] args)中。 System.Threading.ExecutionContext.Run(VisualStudio.HostingProcess.HostProc.RunUsersAssembly()在System.Threading.ThreadHelper.ThreadStart()處執行(ExecutionContext executeContext,ContextCallback回調,對象狀態)

查詢本身看起來像這樣:

SPEntitiesDataContext ctx = new SPEntitiesDataContext("http://localhost:1080");  
var tasks = ctx.Zlecenia.ToList();

當然,這不是最佳查詢,但是使用.Where僅過濾所需記錄的查詢也會返回相同的錯誤。

我發現我可以使用.Select(z => new ZlecenieItem(){ ColumnName = z.ColumnName, ... })選擇特定的列,但是我不能用它來選擇查找列,因為這樣我會得到以下錯誤(即使如果我僅以此方式選擇單個列):

該查詢使用不受支持的元素,例如對多個列表的引用,或者通過使用EntityRef / EntitySet投影完整的實體。

這是有問題的,因為有時我需要從其他列表中獲取值,並且使用查找值會很好。

我只是在MS產品中發現了我的第一個真正的錯誤,還是(感覺很有可能)我做錯了什么?

雖然我仍然不確定為什么上述方法不起作用,但我設法通過向SPmetal添加自定義配置文件來生成引用來解決了該問題。

這表明默認的SPmetal配置可能並不總是有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM