2012-04-13 33 views
0

我有一个叫活动内容类型继承形式事件 和我有一个列表实例调用活动,其内容类型是活动 当SPMetal生成的实体,我看到下面的类与映射相关的列已被删除/重命名

公共部分类活动:事件 和 公共部分类ActivitiesActivity:活动

当我写了下面的代码保存一个新的实体

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

它抛出

与映射已被删除相关列/改名

+0

检查实体和内容类型是否匹配。如果他们的确可以用一个非常简单的例子来开展工作,那么从一列CT开始,建立你的解决方案,直到你有你需要的东西。通过这种方式,您应该能够挑出实体的哪一点引起问题。希望这可以帮助 – Truezplaya 2012-04-24 13:58:54

回答

0

我知道这是一个古老的线程,但我只是有这个问题,这是我如何解决它。

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

事实证明,因为我已经更新了列表中的内容类型(生成SPMetal的内容类型),所以它使一些奇怪的虚拟成员来表示更改。另一个列表(产品列表)从来没有原始的内容类型,所以它不能识别虚拟成员,并且它被炸毁了。

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

1

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