2012-09-13 76 views
0

我給了內容部分一個錯誤的名稱,我想重命名它。我嘗試在解決方案中重命名類和它的所有調用都無濟於事。我甚至嘗試從ShellFeatures表和由Migrations生成的表中刪除條目,但這隻會讓事情變得更糟。現在整個模塊的功能無法識別。任何人之前嘗試過?如何刪除或重命名Orchard中的內容部分?

+0

如果你清除你的App_Data文件夾並啓動一個新站點,它會工作嗎? –

+0

我很猶豫要清除App_Data文件夾。然後,我必須從頭開始通過我的網站。我已經完成了大部分設置和東西 – Jonn

+0

你總是可以將它剪切並粘貼到某個地方。只是爲了看看它是否有效。然後可能使用導入/導出模塊將數據提取到新安裝中。只是想嘗試我猜。 –

回答

1

我知道這是一個老問題,但我只是必須解決這個問題,這是我從Google登陸的第一個結果。

您可以刪除ContentPart,然後重新添加使用遷移例如:

public int UpdateFrom3() { 
     // remove the AccreditationsPart part cleanly 
     ContentDefinitionManager.DeletePartDefinition(typeof (AccreditationsPart).Name); 
enter code here 
     // re-add the AccreditationsPart again 
     ContentDefinitionManager.AlterPartDefinition(typeof (AccreditationsPart).Name, 
      cfg = > cfg 
      .Attachable() 
      .WithDescription("Adds a row of configurable accreditations to the content type")); 
     return 4; 
    } 

您將需要自定義更新號,以適應當前的migrations.cs,改變它的AlterPartDefinition匹配任何你想讓它是。

警告:這僅用於解決您直接接觸到的問題。在遷移的第一部分刪除零件時,將丟失任何關聯的數據。如果您已經在生產中運行代碼,那麼您將不得不使用不同的方法。

+0

AlterPartDefinition之前的DeletePartDefinition似乎對我有用,但不會刪除生產站點中的任何現有數據嗎? – Nathan

+0

是的你是對的。我只想着一個場景,因爲你的模塊無法正常工作,所以你立即抓住它。我應該在我的主要答案中指出這一點。 – rtpHarry