2013-07-04 46 views
0

這裏是有關的代碼:爲什麼我得到該屬性是對象的關鍵信息的一部分,當我沒有觸及它時不能被修改?

var pageToEdit = _context.WikiPages.Find(i_PageToCreate.PageID); 
pageRevisionToAdd = new WikiPageRevision(); 
pageRevisionToAdd.Content = i_PageToCreate.Content; 
pageRevisionToAdd.CreationDate = DateTime.Now; 
pageRevisionToAdd.ParentWikiPageID = pageToEdit.ID; 
pageRevisionToAdd.CreatorID = -1; 

foreach (var rev in pageToEdit.Revisions) 
{ 
    rev.RevisionState = WikiPageRevision.eRevisionState.History; 
} 
pageRevisionToAdd.RevisionState = WikiPageRevision.eRevisionState.Baseline; 
pageToEdit.Revisions.Add(pageRevisionToAdd); 

_context.SaveChanges(); 

,並當它到達_context.SaveChanges();我得到的錯誤:

The property 'RevisionID' is part of the object's key information and cannot be modified.

Exception Details: System.InvalidOperationException: The property 'RevisionID' is part of the object's key information and cannot be modified.

我沒有碰修訂ID ..我到底做錯了什麼?

+1

在'RevisionState'屬性中是否有修改修訂ID的代碼? –

+0

$%@ $%@ $你是對的這是一個枚舉屬性,更新RevisionID而不是修訂狀態ID – Mortalus

回答

0

發現bug ... 它是一個定義爲使用枚舉封裝RvisionStateID的屬性。

public eRevisionState RevisionState 
    { 
     get { return (eRevisionState)RevisionID; } // ..should be RevisionStateID 
     set { RevisionID = (int)value; } // ..should be RevisionStateID 
    } 
+0

好,現在你可以關閉這個問題:) –

+0

yhea ..在2天:( – Mortalus

相關問題