[英]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.WhereSelectEnumerableIterator2.MoveNext() at System.Collections.Generic.List
1.中的lambda_method(ExecutionScope,SPListItem)處的2.MoveNext() at System.Collections.Generic.List
。System.Linq.Enumerable.ToList1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable
ctor(IEnumerable1 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.