2012-04-13 54 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值並將表單內容保存回庫中,但在這種情況下更新提升的列是不行的。