我想做以下事情:
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;
}
}
答案 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;