2012-02-07 32 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