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; }
}