У меня есть ObjectModel, который содержит, например, 2 класса Student и Course.documentDB с использованием коллекции и документа для объекта
Я хочу использовать documentDB для сохранения этой 2 коллекции (одна коллекция для курсов и одна для студентов) Мне нужно создать 2 разные коллекции в моей документацииDB DB? , Или я могу использовать только одну коллекцию?
Другая проблема, когда я хочу конвертировать из документа в 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?
Спасибо!
Не уверен, что я предложил бы '1' и' 2' для 'Type', если вы по какой-то причине нормализуетесь (но для меня это кажется преждевременной оптимизацией). Просто пойдите с «Курсом» и «Студентом». –
@ Ming Liu на основе простого теста, динамическое кастинг примерно в 20 раз медленнее, чем статический регулярный C# !!. Кроме того, если я передам все свойства в свой первоначальный тип свойства, это будет очень дорого по значению вычислительного времени (отбрасывается из строки в исходный тип). documentDB не сохраняет документ в двоичном формате (например, mongoDB bson). Могу ли я пропустить что-нибудь? – mak