2012-02-07 35 views
0

我要做到以下幾點:如何爲LinkedItem設置一個值?

electronicSignatureModel.createdBy.Id = DbContext.CurrentUser.CreatedById; 

其中electronicSignatureModel.createdBy.Id = DbContext.CurrentUser.CreatedById;很長?和DbContext.CurrentUser.CreatedById是很長的嗎?當我嘗試這樣做時,我得到一個NullReferenceException。 DbContext.CurrentUser.CreatedById有一個值,所以我認爲它與electronicSignatureModel.createdBy.Id有關。 electronicSignatureModel.createdBy是一個LinkedItem並且爲空。我怎樣才能填充這個LinkedItem,使它不爲空?

的鏈接項如下所示:

#if SCRIPTSHARP 
    [Imported] 
    [IgnoreNamespace] 
    [ScriptName("Object")] 
#endif 
    public class LinkedItem : BaseModel 
    { 
     /// <summary> 
     /// entity that represents the item 
     /// </summary> 

#if SCRIPTSHARP 
     [PreserveCase] 
#endif 
     public string Entity; 

     /// <summary> 
     /// name of the item 
     /// </summary> 
#if SCRIPTSHARP 
     [PreserveCase] 
#endif 
     public string Name; 

     /// <summary> 
     /// id of the item 
     /// </summary> 
#if SCRIPTSHARP 
     [PreserveCase] 
#endif 
     public long? Id; 





    } 
} 
+1

是什麼類型'electronicSignatureModel'?這種類型是怎麼樣的? – svick 2012-02-08 01:16:50

回答

1

如果事情是null,這意味着它沒有價值。你不能修改任何東西的屬性。如果要設置IdcreatedBy,則首先必須將createdBy設置爲某個非null的值。

如何做到這一點取決於如何做的electronicSignatureModel類型,但假設它與訪問二傳手屬性(或公共領域,但是你應該避免那些),例如,你可以像做:

var createdBy = new LinkedItem(); 
createdBy.Id = DbContext.CurrentUser.CreatedById; 
electronicSignatureModel.createdBy = createdBy; 

或者,使用object initializer syntax

electronicSignatureModel.createdBy = 
    new LinkedItem { Id = DbContext.CurrentUser.CreatedById }; 
+0

得到它的工作,沒有使用模型,所以不得不做var createdBy = new test.Web.Framework.Models.LinkedItem();代替。謝謝。 – 2012-02-08 20:33:03