问题标签 [linq-to-sharepoint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1606 浏览

linq - 在 LINQ to SharePoint 查询中更正 MultiChoice 值

我正在使用 LINQ to SharePoint 查询从 SharePoint 列表中返回项目。

但是,我正在查询的列表,一个 OOTB 任务列表,有许多多选字段(状态、优先级),它们被翻译成枚举。在我的查询结果中,任务项状态返回为“_2Normal”,而不是我期望的“(2) Normal”。我在 SPMetal.exe 生成的代理文件中看到,任务状态枚举有一个 ChoiceAttribute,其中包含我需要的值:

如何修改上面的查询以返回正确的值?

谢谢,魔术师安迪。

0 投票
1 回答
2288 浏览

c# - 指定的演员在查询 Sharepoint 时无效

使用 SPMETAL 我生成了一个 C# 文件,允许我使用 LINQ 访问 Sharepoint 对象。

然而,使用一个非常简单的查询会产生一个奇怪的错误:

指定的演员表无效。

堆栈跟踪:
在 Microsoft.SharePoint.Linq.StaticPropertyMap.SetToEntity(Object entity, Object value) 在 Microsoft.SharePoint.Linq.SPItemMappingInfo.MaterializeEntity[TEntity](DataContext dc, SPDataList list, SPListItem item, SPItemMappingInfo itemMappingInfo, JoinPath joinPath) at lambda_method(ExecutionScope , SPListItem) at System.Linq.Enumerable.WhereSelectEnumerableIterator 2.MoveNext() at System.Collections.Generic.List1..ctor(IEnumerable1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable1 来源)在 QuickModify.Program.Main(String[] args) 在 C:\XXXXXXXXX\QuickModify\Program.cs:line 42 at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) 在 Microsoft.VisualStudio.HostingProcess .HostProc.RunUsersAssembly() 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 在 System.Threading.ThreadHelper.ThreadStart()

查询本身如下所示:

当然,这不是最佳查询,但使用 .Where 仅过滤所需记录的查询也会返回相同的错误。

我发现我可以使用 选择特定列.Select(z => new ZlecenieItem(){ ColumnName = z.ColumnName, ... }),但是我不能使用它来选择查找列,因为我收到以下错误(即使我以这种方式只选择了一个列):

查询使用不受支持的元素,例如对多个列表的引用,或使用 EntityRef/EntitySet 投影完整实体。

这是有问题的,因为有时我需要从其他列表中获取值,使用查找值会很好。

我是不是在 MS 产品中发现了我的第一个真正的错误,或者(感觉更有可能)我做错了什么?

0 投票
1 回答
631 浏览

c# - 具有动态 linq 的多选字段

我正在制作一个 SP2010 页面,用户可以在其中按阶段过滤项目(这是一个多选字段)。出于性能原因和过滤器的性质,我不得不求助于 System.Linq.Dynamic 来进行此查询。

我尝试了以下(这不是真正的代码,但举例说明了我在做什么):

如果项目只有一个阶段并且是被过滤的阶段,则此方法有效。如果该项目有多个阶段(如阶段 1 和 2)并且我按阶段 1 过滤,它必须显示。如何过滤多选字段?

编辑:忘了提,对象“Phase.Value”的类型是使用 SPMetal 生成的标志枚举。

0 投票
1 回答
653 浏览

linq - SPMetal:如何覆盖它以使用内部名称而不是“显示名称”

所以我使用 SPmetal 工具生成数据类以使用 LINQ to SharePoint。

该工具的一项功能是通过其显示名称为网站栏设置别名。

如何覆盖 SPMetal 设置以使用内部名称或静态名称?

0 投票
2 回答
2515 浏览

sharepoint - 具有多重查找的复杂查询

我正在尝试获取一个列表的项目,其中任何多重查找值都包含在另一个查询的结果中。

情况是这样的:我正在构建一个 web 部件,用户可以使用它使用一组共享点(foundation 2010)列表为五个属性下拉列表制作报告(“融合”)。这些属性通过列表中的查找进行连接。每次更改下拉选择时,都会发生回发并重新填充以下下拉列表。

问题是属性之间的连接不是与下拉列表的直接匹配。这是因为下拉输入被选择用于报表的直观输入,并且数据模型被设计为系统数据的简单和直观输入,而不是为了高效和简单的编程......

数据模型的相关部分:
-Locaties(位置)是一个列表 -Contracten
(合同)是一个列表,每个合同都有一个或多个位置(多查找)
-Urgentie(紧急度)是一个列表,每个紧急有一个合同(lookup)
-Meldingtypes (reporttype) 是一个列表 -Categorieën
(categories) 是一个列表,每个类别有一个 meldingtype (lookup),每个类别有一个或多个合约 (multi-lookup)

报告输入如下:
用户首先选择Locatie
用户选择Meldingtype 第二
用户选择Categorie 第三
用户选择Contract 第四
最后用户选择Urgentie

当然,每次下拉菜单都应该只填充有效的选项。So when a location is chosen, the only meldingtypes shown in the dropdown should be the ones that have categories which have a contract which have the chosen location...yeah, I know ;)

我在创建查询以填充下拉列表时遇到问题。我一直在尝试几种方法,包括多个查询、使用 Contains 选择器的构造,但都没有奏效。在上一次迭代中,我创建了一个查询,该查询使用一个项目在被多重查找引用时所具有的属性。这是 meldingtype 下拉列表的示例:

selectedLocatieId 是一个从 Locatie 下拉控件中获取值的属性。

上面的代码会引发 System.InvalidOperationException。错误描述是荷兰语,翻译成类似:“查询使用不受支持的元素,例如对多个列表的引用或使用 EntityRef/EntitySet 投影完整实体”

如果我使用 EntitySet.Contains,我会得到同样的错误:

我尝试了几种排列,但似乎找不到合适的排列。对于具有多查找字段的 linq-to-sharepoint 查询,我找不到任何好的示例,而且我对 linq 还不够熟练,所以我可能会犯一些市长错误。虽然我正在弄清楚这一点,但我真的很感激任何有用的想法。

[编辑:另一次尝试失败] 我尝试对所有步骤进行单独查询以检查中间结果。我还尝试了 Any-Contains 组合,以将类别的多查找合同与我从该位置获得的多个合同相匹配。

locatieItem 和 contractenData 已按预期填充,但 categorieenData 再次生成相同的错误。[/编辑]

PS因为代码中的荷兰名字在英文中非常易读,所以我没有翻译名字。对困惑感到抱歉。

0 投票
5 回答
2640 浏览

c# - LINQ to Sharepoint InsertOnSubmit 问题

例如,我有一个名为 Product 的列表,它有 3 列,ProductName(即标题)、ProductPrice 和 ProductType。

  • ProductName 是一个字符串
  • ProductPrice 是一种货币(双)
  • ProductType 是 ProductTypes 列表的查找

通常,如果它不包含查找列,这对我来说很容易,但我不知道如何在插入时处理查找列。

我试过这个,但它返回一个错误Specified cast is not valid.

这是当前代码

我会怎么做,newProduct.ProductType因为这里是错误发生的地方。

请注意,ddProductType DataSource 是ProductType 列表Title在其DataTextFieldDataValueField

0 投票
3 回答
4022 浏览

linq - Linq to SharePoint 抛出空引用异常

在我们的 SharePoint 2010 项目中,我们使用 Linq to SharePoint 来获取配置项列表。在我们的测试环境中,我们从未遇到过从此列表中获取数据的问题。在我们的生产环境中,我们现在有时(我们现在找不到模式)在遍历列表中的项目时会出现空引用异常。

下面是从 Linq 到 SharePoint 代码抛出的异常:

这里是我们在 GetConfiguration 方法中使用的代码。

任何人都知道如何追踪导致此异常的原因?

2011 年 5 月 31 日更新:

我们找到了一种模式,我们可以通过这种方式在生产环境中重现这种行为。在我们的测试环境中,我们也遇到了这个问题,我们使用 AdPlus 从中提取了一些崩溃转储文件。

我们看到在应用程序池被回收后发生了这种行为。修复此错误的唯一方法是执行完整的 IISreset。

在故障转储分析中,我发现一条异常消息指出:异常代码:0xC0000005 异常信息:线程尝试读取或写入它没有适当访问权限的虚拟地址。

希望有人能给我更多关于这个例外的信息吗?

0 投票
1 回答
1314 浏览

.net - Linq 查询中的 SharePoint 查找(计数相关)值

我有两个列表,帖子和评论。Comments 有一个到 Posts 列表的 Lookup 列,并且 Posts 有一个 Lookup (Count Relate) 关系回到 Comments 列表。我要做的只是显示每个帖子中的评论数。出于某种原因,我无法使用实体引用来执行此操作。

我有一个 ArchiveItem 类:

然后是我试图运行的查询:

我尝试了几种不同的方法并收到各种错误消息。这个特定的版本给了我

查询使用不受支持的元素,例如对多个列表的引用,或使用 EntityRef/EntitySet 投影完整实体。

有任何想法吗?我认为这会很简单,但也许我错过了一些东西。

0 投票
1 回答
1350 浏览

linq - 使用带有 linq 的 LinqDataSource 到共享点进行分页

我正在开发一个 Sharepoint 2010 可视化 webpart,我正在尝试在其中使用 LinqDataSource 来处理 GridView 中的分页和排序。我用 spmetal 制作了我的数据上下文和实体对象。现在这是我的代码:

我的标记:

和我的代码:

现在的问题是,当我尝试在网站上查看 web 部件时出现此错误: “System.Int32”类型的表达式不能用于返回类型“System.Object”

当我在网格视图上停用分页时,此错误消失。

你知道为什么会这样吗?

我会很感激任何帮助。

0 投票
1 回答
696 浏览

linq - 优化 LINQ to Sharepoint

我在 Sharepoint 2010 上有三个列表,并且我有获取列表并将它们关联的工作代码。我的问题是加载我的页面大约需要 15 秒。一般来说,我是 LINQ to Sharepoint 和 LINQ 的初级初学者。我的问题是:有没有办法让这段代码运行得更快?

至少可以说,这段代码花费的时间令人沮丧。

谢谢。