我有ObjectModel,其中包含2个类Student和Course。
我想使用documentDB保存2个集合(一个集合用于课程,一个用于学生) 我需要在documentDB DB中创建2个不同的集合? ,或者我可以只使用一个收藏品?
当我想从文档转换为ObjectModel.Student时,另一个问题,我不想使用动态转换(实时性能问题)。
public static async Task<ObjectModel.Student> GetGroupAsyncByID(string id)
{
try
{
Document document = await _client.ReadDocumentAsync(UriFactory.CreateDocumentUri(cDatabaseId, cAllCollections[0], id));
return (ObjectModel.Student)document; // compile error
}
catch (DocumentClientException e)
{
if (e.StatusCode == System.Net.HttpStatusCode.NotFound)
{
return null;
}
else
{
throw;
}
}
}
我的学生班
public class Student
{
#region Fields
[JsonProperty(PropertyName = "id")]
public string ID { get; set; }
public String StudentName { get; set; }
}
我如何从Doucment投射到Student对象?
谢谢!
答案 0 :(得分:0)
DocumentDB是模式激发的,是的,您可以将Course和Student对象保存在一个集合中。要轻松告诉文档应该转换为哪个类,您可以定义,例如,&#34; Type&#34;两个对象中的属性,1表示Course对象,2表示Student对象。
Document对象实现动态合约。您可以按学生s =(动态)文档转换为Student。这里的性能含义非常小,因为文档已经包含了JSON对象的PropertyBag,它只会设置&#34; Student&#34;的属性。到PropertyBag中的值。
如果您想自己处理这个问题,ResourceResponse还会公开原始流,以便您可以处理自己的反序列化。