与映射关联的列已被删除/重命名

时间:2012-04-13 18:23:55

标签: sharepoint sharepoint-2010 linq-to-sharepoint

我有一个名为Activity的内容类型,它继承了表单Event 我有一个名为Activities的列表实例,其内容类型是Activity 当SPMetal生成实体时,我会看到以下类

public partial class Activity:Event 和 public partial class ActivitiesActivity:Activity

当我编写以下代码以保存新实体时

    public void Save(Activity activity)
    {
        var context = new MACEntitiesDataContext("http://localhost:8088");
        var activities = context.GetList<Activity>("Activity");
        activities.InsertOnSubmit(activity);
        context.SubmitChanges();
    }

它抛出

与映射关联的列已被删除/重命名

2 个答案:

答案 0 :(得分:1)

另一个解决方案 - 我试图从InfoPath表单中 SET 一个可以为空的bool值。我的经验是,可以更新xml值并将表单内容保存回库中,但在这种情况下更新提升的列是不行的。

答案 1 :(得分:0)

我知道这是一个老线程,但我遇到了这个问题,这就是我解决它的方法。

我有一个分配了内容类型的列表。我添加了一些项目,然后生成了SPMetal。好吧,内容类型已更改,我在列表中更新了它并重新运行了SPMetal。在完成所有测试之后,我们将部署到生产中,这就是错误发生的时间。我们在LinqPAD中运行了相同的查询,一切正常。不是来自我们的工作流程。

事实证明,因为我已经更新了我的列表中的内容类型(生成SPMetal的内容类型),所以它创建了一些奇怪的虚拟成员来表示更改。另一个列表(生产列表)从未拥有原始内容类型,因此它无法识别虚拟成员,并且它已经爆炸。

我修复它的方法是删除表格,重新创建它(同名),然后重新分配内容类型,然后运行SPMetal。