如何为LinkedItem设置值?

时间:2012-02-07 22:39:53

标签: c# nullreferenceexception

我想做以下事情:

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,为null。如何填充此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 个答案:

答案 0 :(得分:1)

如果某些内容为null,则表示它没有任何价值。而你无法修改任何属性。如果您要设置Id的{​​{1}},首先必须将createdBy设置为某个非createdBy值。

如何做到这一点取决于null的类型如何,但假设它是具有可访问setter的属性(或公共字段,但你应该避免这些),你可以做例如:< / p>

electronicSignatureModel

或者,使用object initializer syntax

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