Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net LinqToSharepoint插入到具有多种内容类型的列表_.net_Linq_Sharepoint - Fatal编程技术网

.net LinqToSharepoint插入到具有多种内容类型的列表

.net LinqToSharepoint插入到具有多种内容类型的列表,.net,linq,sharepoint,.net,Linq,Sharepoint,在使用Linq2SharePoint时,将新记录插入SharePoint列表时遇到问题,该列表可能包含多个内容类型的项 “我的列表”及其内容类型由功能创建,并且在事件中为许多内容类型创建接收器内容类型绑定。这些实际上是一个相互继承的类型树,它们都派生自一个自定义内容类型,而自定义内容类型本身派生自内置项内容类型 我的数据上下文由SPMetal生成,然后使用自定义T4模板从中创建存储库层。我不是使用Linq2SharePoint访问命名列表,而是为内容类型创建存储库。事实上,由于所讨论的列表可以通

在使用Linq2SharePoint时,将新记录插入SharePoint列表时遇到问题,该列表可能包含多个内容类型的项

“我的列表”及其内容类型由功能创建,并且在事件中为许多内容类型创建接收器内容类型绑定。这些实际上是一个相互继承的类型树,它们都派生自一个自定义内容类型,而自定义内容类型本身派生自内置项内容类型

我的数据上下文由SPMetal生成,然后使用自定义T4模板从中创建存储库层。我不是使用Linq2SharePoint访问命名列表,而是为内容类型创建存储库。事实上,由于所讨论的列表可以通过激活该功能在任何SPWeb中创建,因此它在编译时不存在,因此对于数据上下文来说是未知的

在MSDN上,有人解释说,要处理多个内容类型的列表,SPMetal会生成数据上下文,以便对这种性质的列表使用最接近的基本内容类型。请参阅此处的“为内容类型生成实体”部分

基于此,我使用基本内容类型访问列表。例如,假设以下内容类型层次结构:

Item
  Foo : Item
    BlueFoo : Foo
    RedFoo : Foo
      BrightRedFoo : RedFoo
      DarkRedFoo : RedFoo
    GreenFoo : Foo
然后,我的列表可以包含任何XXXFoo内容类型的项,要访问它,数据上下文使用
EntityList

这非常适合从列表中读取项,尽管它们都是Foo类型而不是派生类型(虽然这不是真正的问题,因为使用一些jiggery涉及到ICustomMapping扩展到Item以访问隐藏的内容类型字段,但生成的存储库层可以访问基础SPListItem,并在需要时向下转换到派生类型)

当我尝试将一个项目写入列表时,问题就出现了。首先,我尝试为此创建一个特定的EntityList,例如
EntityList
,但这导致了一个异常。因此,我也将Foo类型添加到列表内容类型中,并尝试使用
EntityList
添加一个项目,但这会导致相同的异常

这两种情况下的例外情况是相同的,错误消息是“与映射相关的列已被删除/重命名”。谷歌搜索此消息时,只会找到一个遇到此消息的快乐伙伴,(omourad.blogspot.com/2010/06/Columns associated mappings have.html),但他的问题是他的名单命名错误。这不是我的问题

在WWW上搜索了几个小时后,我发现关于多内容类型的SPList的讨论很少,实际上与Linq和这个问题没有任何关系。CodePlex上有这个,但它有0次下载,自2009年以来一直保持安静

我曾尝试直接从数据上下文而不是使用存储库层进行访问,以确保问题不在我的代码中。我已在激活该功能的情况下从web重新生成数据上下文,以便确定其是否不同步


我遗漏了什么吗?这是由我不知何故遗漏的累积更新修复的吗?我肯定不是唯一一个尝试这么做的人吗?我感到几乎和你遇到问题时一样孤独,你能找到的唯一在线参考是StackOverflow风滚草问题。一定有人可以阻止这成为风滚草q自创?

[在此处插入风滚草图片]

对于这个问题,我没有一个明确的答案,因为它似乎不是一个真正的问题,或者至少我的表现只是一个症状。或者,也许我没有一个明确的答案,因为在SharePoint世界中,没有明确的答案,在那里说“不要做X”或“你必须做Y”似乎是完全可以接受的没有真正能够解释或证明这一点。本着这种精神,我想说以下不恰当的、未经证实的概括:

不要对ContentTypes使用“继承”或“覆盖”属性


它们听起来不错。文档看起来不错。该功能对于消除令人讨厌的“标题”字段等方面来说是非常好的,但事实上它们似乎不起作用。我不知道为什么,我猜SharePoint团队也不这么认为,因为他们能给我的最好信息是“发生了错误。请重试”或诸如此类的信息。我所知道的是将这两个属性和它们所赋予的高度理想的效果结合起来,一切都会更好。

[在此处插入风滚草图片]

对于这个问题,我没有一个明确的答案,因为它似乎不是一个真正的问题,或者至少我的表现只是一个症状。或者,也许我没有一个明确的答案,因为在SharePoint世界中,没有明确的答案,在那里说“不要做X”或“你必须做Y”似乎是完全可以接受的没有真正能够解释或证明这一点。本着这种精神,我想说以下不恰当的、未经证实的概括:

不要对ContentTypes使用“继承”或“覆盖”属性


它们听起来不错。文档看起来不错。该功能对于消除令人讨厌的“标题”字段等方面来说是非常好的,但事实上它们似乎不起作用。我不知道为什么,我猜SharePoint团队也不这么认为,因为他们能给我的最好信息是“发生了错误。请重试”或诸如此类的信息。我所知道的是把这两个属性和它们所赋予的非常理想的效果去掉,一切都会更好。

嗨,Rob,你能谈谈你是如何解决Foo问题的吗?我不知道你应该如何在L2SP中对此进行建模,而你似乎“使用了一些诡计”来解决它.就您的类型问题而言,我已成功地将子类型添加到基本类型列表中。尝试时会引发什么异常?这是一个链接,指向我发布的一个有关该问题的问题嗨Jason。我发布了一个解释和一个代码示例,用于使用ICustomMapping提供必要的“jiggery”能够从L2解析为派生类型