我正在设计一个要在 Web 应用程序中使用的对象模型。
该模型包含用户。每个用户都有会话。每个会话都包含该会话的记录和事件。我需要做的是持久化数据(看起来像 mongodb 或类似的)我如何将此代码作为 API 保存到我的数据库,API 的使用者不需要知道它是如何存储的。它会“神奇地”工作。
谢谢!
这是我现在使用的设计。
public class User
{
public int id {get; set;}
public DateTime EnrollDate { get; set; }
public string Udid { get; set; }
public string Email { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public HashSet<Session> Sessions { get; set; }
public HashSet<Session> GetSessions()
{
if (Sessions == null)
{
Sessions = new HashSet<Session>();
}
return Sessions;
}
}
public class Session
{
public string SessionId { get; set; }
public DateTime Time { get; set; }
public JObject Parameters { get; set; }
private List<Event> Events { get; set; }
private List<Record> Records { get; set; }
public List<Event> GetEvents()
{
if (Events == null)
{
Events = new List<Event>();
}
return Events;
}
public List<Record> GetRecords()
{
if (Records == null)
{
Records = new List<Record>();
}
return Records;
}
}
public class Record
{
public Record()
{
RecordId = Guid.NewGuid().ToString();
CreatedAt = DateTime.Now;
}
public string Name { get; set; }
public string RecordId { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime Time { get; set; }
public JObject Data { get; set; }
}
public class Event
{
public Event()
{
EventId = Guid.NewGuid().ToString();
CreatedAt = DateTime.Now;
}
public string EventId { get; set; }
public string Name { get; set; }
public DateTime Time { get; set; }
private DateTime CreatedAt { get; set; }
public JObject Parameters { get; set; }
}