将子数组插入 Azure Documentdb
Inserting Sub-Array into Azure's Document DB
我正在尝试将 "Video" 的子 class(文档)插入到我的组织文档中。
但是,当我尝试添加记录时,我得到 "Object reference is not set to an instance of an object."
我尝试使用添加和插入,但都不起作用。我查看了 Dcoument 资源管理器,我可以看到视频正在返回 "null."
我假设我的问题是 Document DB 不知道 Video 是一个列表。 (在我的模型中,我将其定义为列表)
此外,我已经尝试为组织和视频创建新对象。另外,我有一个名为 Category 的 class,它具有完全相同的代码(除了对象是 Category)并且插入正常。
以下是我正在使用的操作。
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "name,description,link")] Video video)
{
if (ModelState.IsValid)
{
UserSession usersession = new UserSession();
usersession = (UserSession)Session["user"];
Organization organization = (Organization)DocumentDBRepository<Organization>.GetItem(d => d.Id == usersession.organizationId);
video.DateAdded = DateTime.Now;
organization.Videos.Add(video);
await DocumentDBRepository<Organization>.UpdateItemAsync(organization.Id, organization);
return RedirectToAction("Index");
}
return View(video);
}
将 organization.Videos
设置为非空值。 Document db 只是保留您存储的内容。显然,您之前存储了 null
.
我正在尝试将 "Video" 的子 class(文档)插入到我的组织文档中。
但是,当我尝试添加记录时,我得到 "Object reference is not set to an instance of an object."
我尝试使用添加和插入,但都不起作用。我查看了 Dcoument 资源管理器,我可以看到视频正在返回 "null."
我假设我的问题是 Document DB 不知道 Video 是一个列表。 (在我的模型中,我将其定义为列表)
此外,我已经尝试为组织和视频创建新对象。另外,我有一个名为 Category 的 class,它具有完全相同的代码(除了对象是 Category)并且插入正常。
以下是我正在使用的操作。
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "name,description,link")] Video video)
{
if (ModelState.IsValid)
{
UserSession usersession = new UserSession();
usersession = (UserSession)Session["user"];
Organization organization = (Organization)DocumentDBRepository<Organization>.GetItem(d => d.Id == usersession.organizationId);
video.DateAdded = DateTime.Now;
organization.Videos.Add(video);
await DocumentDBRepository<Organization>.UpdateItemAsync(organization.Id, organization);
return RedirectToAction("Index");
}
return View(video);
}
将 organization.Videos
设置为非空值。 Document db 只是保留您存储的内容。显然,您之前存储了 null
.